Существуют ли какие-либо стандарты опыта разработчиков для создания API в библиотеке Python, которая работает с кадрами ⇐ Python

Программы на Python
Anonymous
Существуют ли какие-либо стандарты опыта разработчиков для создания API в библиотеке Python, которая работает с кадрами

Сообщение Anonymous »

В настоящее время я работаю над библиотекой Python (kawa), которая обрабатывает и манипулирует кадрами данных. Моя цель — спроектировать библиотеку так, чтобы «бэкэнд» библиотеки можно было при необходимости заменять другими реализациями, в то время как код (вызовы методов и т. д.) библиотеки не нуждался в изменении. Это может облегчить потребителям возможность позже переключиться на другие библиотеки, если они не захотят продолжать использовать мою.
Я ищу какой-либо существующий стандарт или соглашения, используемые в других подобных библиотеках. которые я могу использовать в качестве вдохновения.
Например, вот как я создаю и загружаю источник данных:

Код: Выделить всё

import pandas as pd
import kawa
...

cities_and_countries = pd.DataFrame([
{'id': 'a', 'country': 'FR', 'city': 'Paris', 'measure': 1},
{'id': 'b', 'country': 'FR', 'city': 'Lyon', 'measure': 2},
])

unique_id = 'resource_{}'.format(uuid.uuid4())
loader = kawa.new_data_loader(df=self.cities_and_countries, datasource_name=unique_id)
loader.create_datasource(primary_keys=['id'])
loader.load_data(reset_before_insert=True, create_sheet=True)
и вот как я манипулирую (запускаю вычисления) созданным источником данных (фреймом данных):

Код: Выделить всё

import pandas as pd
import kawa
...

df = (kawa.sheet(sheet_name=unique_id)
.order_by('city', ascending=True)
.select(K.col('city'))
.limit(1)
.compute())
У меня есть несколько конкретных вопросов:
  • Какие основные методы (например, фильтрация, агрегирование и т. д.) следует ли мне обязательно реализовать реализацию для объектов, подобных фреймам данных?
  • Следует ли мне сосредоточиться на поддержке цепочки методов, как в pandas (например,
    .groupby().agg()), или существуют ли другие шаблоны, которые хорошо подходят для
    манипулирования фреймами данных?
  • Как следует ли мне обрабатывать функции ввода/вывода (например, чтение/запись
    в CSV, JSON, SQL)?
Мне бы хотелось услышать мнение тех из вас, у кого есть опыт создания или использования библиотек Python, работающих с кадрами данных. Будем очень признательны за любые советы и ресурсы!

Подробнее здесь: https://stackoverflow.com/questions/790 ... hon-librar

Вернуться в «Python»