Code Monkey home page Code Monkey logo

Comments (4)

epogrebnyak avatar epogrebnyak commented on September 26, 2024

Флаг использования локальных данных - значение по умолчанию True

Флаг не нравится, это какое-то ненужное ветвление. Можно реализовать так:

  • класс всегда обращается к кэшу (локальной копии),
  • есть метод update() который эту локал обновляет
  • нужные данные висят на свойствах класса

Пример реализации тут, как принцип, сама реализация так себе.

Данные хранятся в формате csv (при необходимости в xlsx)

Только не xlsx, прошу ) xlsx у нас только прокси ответ один сервера, это не данные.

Типы данных, содержащие один элемент, + Типы данных, содержащих несколько элементов,

непонятно что это такое

Структура и поведение класса

Нужно определиться зачем использовать класс, а не функции, как правило, это наличие state - состояния системы, которое может изменяться. Класс может объединять несколько функций, некоторые из них уже есть (загрузка), некоторых нет (валидация, хранение в локальной файл, чтение из локального файла). Как только есть функции, которые делают нужные вещи, объединить их в класс особо не сложно.

Нужны:

  • (больше всего) описание итоговых данных, которые будут висеть на свойствах класса
  • функции хранения-чтения данных
  • хелперы для файловой структуры, что куда складывать (на основе этого кода)
  • валидаторы целостности данных

from poptimizer_old.

WLM1ke avatar WLM1ke commented on September 26, 2024

Флаг не нравится, это какое-то ненужное ветвление. Можно реализовать так:

  • класс всегда обращается к кэшу (локальной копии),
  • есть метод update() который эту локал обновляет
  • нужные данные висят на свойствах класса

Идея не в том, что иногда обновлять надо, а иногда нет - обновлять надо всегда или по немому правилу (например, раз в день или раз в неделю, периодичность хранится в некой переменной на уровне класса или модуля). Флаг True подразумевает, что локальные данные используются и обновляются.

Флаг False предполагает, что локальные данные надо полностью перезаписать с нуля и выдать данные напрямую из выгрузки.

Немного исправил в описании наименование флага: Флаг удаления локальных данных - значение по умолчанию False

Только не xlsx, прошу ) xlsx у нас только прокси ответ один сервера, это не данные.

У меня есть данные, которые я сам локально храню в xlsx. Их хотел забросить напрямую в папку и функция будет их загружать. Все остальные данные, которые берутся из инета будут храниться в csv.

Типы данных, содержащие один элемент, + Типы данных, содержащих несколько элементов,
непонятно что это такое

Есть класс данных инфляция: у нас один элемент в этом классе - хранится прям в корне папки данных
Есть класс котировки: там много элементов, соответствующих отдельным тикерам - создается папка котировки и в ней файлы для каждого тикера.
Добавил примеры в описание

Нужно определиться зачем использовать класс, а не функции, как правило, это наличие state - состояния системы, которое может изменяться. Класс может объединять несколько функций, некоторые из них уже есть (загрузка), некоторых нет (валидация, хранение в локальной файл, чтение из локального файла). Как только есть функции, которые делают нужные вещи, объединить их в класс особо не сложно.

У нас везде будут похожие функции: загрузка локальных версий, в половине случаев определение последней даты в локальных данных, получение остатка данных из интернета (обращение к модулю download), валидация насколько они совпадают на месте склейки, сохранение обновленной локальной версии, выдача результирующего полного DataFrame. в некоторых случаях дополнительная валидация #5

Нужны:

  • (больше всего) описание итоговых данных, которые будут висеть на свойствах класса

Итоговый обновленный или целиком из интернета (если есть флаг стереть локальные данные), или частично из интернета/частично из локальных данных DataFrame.

  • функции хранения-чтения данных

Не очень понял, что это такое

  • хелперы для файловой структуры, что куда складывать (на основе этого кода)

Это можно выделить в отдельный файлик и импортировать потом в каждый их файлов реализации загрузки данных. Добавил ишью

  • валидаторы целостности данных

Я предлагаю валидировать совпадение данных на месте склейки для данных, которые могут быть выгружены из интернета, начиная с какой-то даты
Для данных выгружаемых полностью - проверять полное совпадение с локальными данными
В описании это есть - или ты что еще имеешь ввиду?

from poptimizer_old.

epogrebnyak avatar epogrebnyak commented on September 26, 2024

Флаг False предполагает, что локальные данные надо полностью перезаписать с нуля и выдать данные напрямую из выгрузки.

Немного исправил в описании наименование флага: Флаг удаления локальных данных - значение по умолчанию False

Скажу по-другому - в конструкторе класса флагов быть не должно. Логику которую ты хочешь организовать - можно сделать в виде управляющих/функций классов, но с ветвлением внутри класса - маленькая жесть.

Остальные вопросы - разбивать на отдельные ишью.

from poptimizer_old.

WLM1ke avatar WLM1ke commented on September 26, 2024

Реализовал блок - сохранения локальной версии, ее обновления и выдачи данных по котировкам. Посмотри, нет ли принципиальных возражений. По аналогии хочу сделать с другими загружаемыми данными.

from poptimizer_old.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.