summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-10 04:02:29 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-10 04:02:29 +0000
commit23a56d9c21b2236f0f1ceabb9ca16d5c114b8c6f (patch)
tree27d6bd73e3847b85dcb26ada44c7f45dd9d551fc
parentc4d14bfebfce4b507da99a531920e51f305ad6ff (diff)
automatic import of python-e-dataopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-e-data.spec400
-rw-r--r--sources1
3 files changed, 402 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..9bbd7f6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/e-data-1.1.0.tar.gz
diff --git a/python-e-data.spec b/python-e-data.spec
new file mode 100644
index 0000000..5dce0cc
--- /dev/null
+++ b/python-e-data.spec
@@ -0,0 +1,400 @@
+%global _empty_manifest_terminate_build 0
+Name: python-e-data
+Version: 1.1.0
+Release: 1
+Summary: Python library for managing spanish energy data from various web providers
+License: GPLv3
+URL: https://github.com/uvejota/python-edata
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/bd/39/974948224e2bdb00843f7da33522d7ba6f3218ca63c76b623f8eab96a73b/e-data-1.1.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-dateparser
+Requires: python3-freezegun
+Requires: python3-holidays
+Requires: python3-pandas
+Requires: python3-pytest
+Requires: python3-dateutil
+Requires: python3-requests
+
+%description
+
+[![Downloads](https://pepy.tech/badge/e-data)](https://pepy.tech/project/e-data)
+[![Downloads](https://pepy.tech/badge/e-data/month)](https://pepy.tech/project/e-data)
+[![Downloads](https://pepy.tech/badge/e-data/week)](https://pepy.tech/project/e-data)
+
+# python-edata
+
+Este paquete proporciona herramientas para la descarga de tus datos de consumo eléctrico (desde Datadis.es) y su posterior procesado. La motivación principal es que conocer el consumo puede ayudarnos a reducirlo, e incluso a elegir una tarifa que mejor se adapte a nuestras necesidades. A día de hoy sus capacidades de facturación (€) son limitadas, soporta PVPC (según disponibilidad de datos de REData) y tarificación fija por tramos. Es el corazón de la integración [homeassistant-edata](https://github.com/uvejota/homeassistant-edata).
+
+_**Esta herramienta no mantiene ningún tipo de vinculación con los proveedores de datos anteriormente mencionados, simplemente consulta la información disponible y facilita su posterior análisis.**_
+
+## Instalación
+
+Puedes instalar la última versión estable mediante:
+
+``` bash
+pip install e-data
+```
+
+Si quieres probar la versión `dev` o contribuir a su desarrollo, clona este repositorio e instala manualmente las dependencias:
+
+``` bash
+pip install -r requirements.txt
+```
+
+## Estructura
+
+El paquete consta de tres módulos diferenciados:
+
+* **Conectores** (módulo `connectors`), para definir los métodos de consulta a los diferentes proveedores: Datadis y REData.
+* **Procesadores** (módulo `processors`), para procesar datos de consumo, maxímetro, o coste (tarificación). Ahora mismo consta de tres procesadores: `billing`, `consumption` y `maximeter`, además de algunas utilidades ubicadas en `utils`. Los procesadores deben heredar de la clase Processor definida en `base.py`
+* **Ayudantes** (módulo `helpers`), para ayudar en el uso y gestión de los anteriores, presentando de momento un único ayudante llamado `EdataHelper` que te permite recopilar `X` días de datos (por defecto 365) y automáticamente procesarlos. Los datos son almacenados en la variable `data`, mientras que los atributos autocalculados son almacenados en la variable `attributes`. Por lo general, primero utilizan los conectores y luego procesan los datos, gestionando varias tareas de recuperación (principalmente para Datadis).
+
+Estos módulos corresponden a la siguiente estructura del paquete:
+
+```
+edata/
+ · __init__.py
+ · connectors/
+ · __init__.py
+ · datadis.py
+ · redata.py
+ · processors/
+ · __init__.py
+ · base.py
+ · billing.py
+ · consumption.py
+ · maximeter.py
+ · utils.py
+ · helpers.py
+```
+
+## Ejemplo de uso
+
+Partimos de que tenemos credenciales en Datadis.es. Algunas aclaraciones:
+* No es necesario solicitar API pública en el registro (se utilizará la API privada habilitada por defecto)
+* El username suele ser el NIF del titular
+* Copie el CUPS de la web de Datadis, algunas comercializadoras adhieren caracteres adicionales en el CUPS mostrado en su factura.
+* La herramienta acepta el uso de NIF autorizado para consultar el suministro de otro titular.
+
+``` python
+from datetime import datetime
+import json
+
+# importamos definiciones de datos que nos interesen
+from edata.definitions import PricingRules
+# importamos el ayudante
+from edata.helpers import EdataHelper
+# importamos el procesador de utilidades
+from edata.processors import utils
+
+# Preparar reglas de tarificación (si se quiere)
+PRICING_RULES_PVPC = PricingRules(
+ p1_kw_year_eur=30.67266,
+ p2_kw_year_eur=1.4243591,
+ meter_month_eur=0.81,
+ market_kw_year_eur=3.113,
+ electricity_tax=1.0511300560,
+ iva_tax=1.05,
+ # podemos rellenar los siguientes campos si quisiéramos precio fijo (y no pvpc)
+ p1_kwh_eur=None,
+ p2_kwh_eur=None,
+ p3_kwh_eur=None,
+)
+
+# Instanciar el helper
+# 'authorized_nif' permite indicar el NIF de la persona que nos autoriza a consultar su CUPS.
+# 'data' permite "cargar" al helper datos anteriores (resultado edata.data de una ejecución anterior), para evitar volver a consultar los mismos.
+edata = EdataHelper(
+ "datadis_user",
+ "datadis_password",
+ "cups",
+ datadis_authorized_nif=None,
+ pricing_rules=PRICING_RULES_PVPC, # si se le pasa None, no aplica tarificación
+ data=None, # aquí podríamos cargar datos anteriores
+ )
+
+# Solicitar actualización de todo el histórico (se almacena en edata.data)
+edata.update(date_from=datetime(1970, 1, 1), date_to=datetime.today())
+
+# volcamos todo lo obtenido a un fichero
+with open("backup.json", "w") as file:
+ json.dump(utils.serialize_dict(edata.data), file) # se puede utilizar deserialize_dict para la posterior lectura del backup
+
+# Imprimir atributos
+print(edata.attributes)
+```
+
+
+%package -n python3-e-data
+Summary: Python library for managing spanish energy data from various web providers
+Provides: python-e-data
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-e-data
+
+[![Downloads](https://pepy.tech/badge/e-data)](https://pepy.tech/project/e-data)
+[![Downloads](https://pepy.tech/badge/e-data/month)](https://pepy.tech/project/e-data)
+[![Downloads](https://pepy.tech/badge/e-data/week)](https://pepy.tech/project/e-data)
+
+# python-edata
+
+Este paquete proporciona herramientas para la descarga de tus datos de consumo eléctrico (desde Datadis.es) y su posterior procesado. La motivación principal es que conocer el consumo puede ayudarnos a reducirlo, e incluso a elegir una tarifa que mejor se adapte a nuestras necesidades. A día de hoy sus capacidades de facturación (€) son limitadas, soporta PVPC (según disponibilidad de datos de REData) y tarificación fija por tramos. Es el corazón de la integración [homeassistant-edata](https://github.com/uvejota/homeassistant-edata).
+
+_**Esta herramienta no mantiene ningún tipo de vinculación con los proveedores de datos anteriormente mencionados, simplemente consulta la información disponible y facilita su posterior análisis.**_
+
+## Instalación
+
+Puedes instalar la última versión estable mediante:
+
+``` bash
+pip install e-data
+```
+
+Si quieres probar la versión `dev` o contribuir a su desarrollo, clona este repositorio e instala manualmente las dependencias:
+
+``` bash
+pip install -r requirements.txt
+```
+
+## Estructura
+
+El paquete consta de tres módulos diferenciados:
+
+* **Conectores** (módulo `connectors`), para definir los métodos de consulta a los diferentes proveedores: Datadis y REData.
+* **Procesadores** (módulo `processors`), para procesar datos de consumo, maxímetro, o coste (tarificación). Ahora mismo consta de tres procesadores: `billing`, `consumption` y `maximeter`, además de algunas utilidades ubicadas en `utils`. Los procesadores deben heredar de la clase Processor definida en `base.py`
+* **Ayudantes** (módulo `helpers`), para ayudar en el uso y gestión de los anteriores, presentando de momento un único ayudante llamado `EdataHelper` que te permite recopilar `X` días de datos (por defecto 365) y automáticamente procesarlos. Los datos son almacenados en la variable `data`, mientras que los atributos autocalculados son almacenados en la variable `attributes`. Por lo general, primero utilizan los conectores y luego procesan los datos, gestionando varias tareas de recuperación (principalmente para Datadis).
+
+Estos módulos corresponden a la siguiente estructura del paquete:
+
+```
+edata/
+ · __init__.py
+ · connectors/
+ · __init__.py
+ · datadis.py
+ · redata.py
+ · processors/
+ · __init__.py
+ · base.py
+ · billing.py
+ · consumption.py
+ · maximeter.py
+ · utils.py
+ · helpers.py
+```
+
+## Ejemplo de uso
+
+Partimos de que tenemos credenciales en Datadis.es. Algunas aclaraciones:
+* No es necesario solicitar API pública en el registro (se utilizará la API privada habilitada por defecto)
+* El username suele ser el NIF del titular
+* Copie el CUPS de la web de Datadis, algunas comercializadoras adhieren caracteres adicionales en el CUPS mostrado en su factura.
+* La herramienta acepta el uso de NIF autorizado para consultar el suministro de otro titular.
+
+``` python
+from datetime import datetime
+import json
+
+# importamos definiciones de datos que nos interesen
+from edata.definitions import PricingRules
+# importamos el ayudante
+from edata.helpers import EdataHelper
+# importamos el procesador de utilidades
+from edata.processors import utils
+
+# Preparar reglas de tarificación (si se quiere)
+PRICING_RULES_PVPC = PricingRules(
+ p1_kw_year_eur=30.67266,
+ p2_kw_year_eur=1.4243591,
+ meter_month_eur=0.81,
+ market_kw_year_eur=3.113,
+ electricity_tax=1.0511300560,
+ iva_tax=1.05,
+ # podemos rellenar los siguientes campos si quisiéramos precio fijo (y no pvpc)
+ p1_kwh_eur=None,
+ p2_kwh_eur=None,
+ p3_kwh_eur=None,
+)
+
+# Instanciar el helper
+# 'authorized_nif' permite indicar el NIF de la persona que nos autoriza a consultar su CUPS.
+# 'data' permite "cargar" al helper datos anteriores (resultado edata.data de una ejecución anterior), para evitar volver a consultar los mismos.
+edata = EdataHelper(
+ "datadis_user",
+ "datadis_password",
+ "cups",
+ datadis_authorized_nif=None,
+ pricing_rules=PRICING_RULES_PVPC, # si se le pasa None, no aplica tarificación
+ data=None, # aquí podríamos cargar datos anteriores
+ )
+
+# Solicitar actualización de todo el histórico (se almacena en edata.data)
+edata.update(date_from=datetime(1970, 1, 1), date_to=datetime.today())
+
+# volcamos todo lo obtenido a un fichero
+with open("backup.json", "w") as file:
+ json.dump(utils.serialize_dict(edata.data), file) # se puede utilizar deserialize_dict para la posterior lectura del backup
+
+# Imprimir atributos
+print(edata.attributes)
+```
+
+
+%package help
+Summary: Development documents and examples for e-data
+Provides: python3-e-data-doc
+%description help
+
+[![Downloads](https://pepy.tech/badge/e-data)](https://pepy.tech/project/e-data)
+[![Downloads](https://pepy.tech/badge/e-data/month)](https://pepy.tech/project/e-data)
+[![Downloads](https://pepy.tech/badge/e-data/week)](https://pepy.tech/project/e-data)
+
+# python-edata
+
+Este paquete proporciona herramientas para la descarga de tus datos de consumo eléctrico (desde Datadis.es) y su posterior procesado. La motivación principal es que conocer el consumo puede ayudarnos a reducirlo, e incluso a elegir una tarifa que mejor se adapte a nuestras necesidades. A día de hoy sus capacidades de facturación (€) son limitadas, soporta PVPC (según disponibilidad de datos de REData) y tarificación fija por tramos. Es el corazón de la integración [homeassistant-edata](https://github.com/uvejota/homeassistant-edata).
+
+_**Esta herramienta no mantiene ningún tipo de vinculación con los proveedores de datos anteriormente mencionados, simplemente consulta la información disponible y facilita su posterior análisis.**_
+
+## Instalación
+
+Puedes instalar la última versión estable mediante:
+
+``` bash
+pip install e-data
+```
+
+Si quieres probar la versión `dev` o contribuir a su desarrollo, clona este repositorio e instala manualmente las dependencias:
+
+``` bash
+pip install -r requirements.txt
+```
+
+## Estructura
+
+El paquete consta de tres módulos diferenciados:
+
+* **Conectores** (módulo `connectors`), para definir los métodos de consulta a los diferentes proveedores: Datadis y REData.
+* **Procesadores** (módulo `processors`), para procesar datos de consumo, maxímetro, o coste (tarificación). Ahora mismo consta de tres procesadores: `billing`, `consumption` y `maximeter`, además de algunas utilidades ubicadas en `utils`. Los procesadores deben heredar de la clase Processor definida en `base.py`
+* **Ayudantes** (módulo `helpers`), para ayudar en el uso y gestión de los anteriores, presentando de momento un único ayudante llamado `EdataHelper` que te permite recopilar `X` días de datos (por defecto 365) y automáticamente procesarlos. Los datos son almacenados en la variable `data`, mientras que los atributos autocalculados son almacenados en la variable `attributes`. Por lo general, primero utilizan los conectores y luego procesan los datos, gestionando varias tareas de recuperación (principalmente para Datadis).
+
+Estos módulos corresponden a la siguiente estructura del paquete:
+
+```
+edata/
+ · __init__.py
+ · connectors/
+ · __init__.py
+ · datadis.py
+ · redata.py
+ · processors/
+ · __init__.py
+ · base.py
+ · billing.py
+ · consumption.py
+ · maximeter.py
+ · utils.py
+ · helpers.py
+```
+
+## Ejemplo de uso
+
+Partimos de que tenemos credenciales en Datadis.es. Algunas aclaraciones:
+* No es necesario solicitar API pública en el registro (se utilizará la API privada habilitada por defecto)
+* El username suele ser el NIF del titular
+* Copie el CUPS de la web de Datadis, algunas comercializadoras adhieren caracteres adicionales en el CUPS mostrado en su factura.
+* La herramienta acepta el uso de NIF autorizado para consultar el suministro de otro titular.
+
+``` python
+from datetime import datetime
+import json
+
+# importamos definiciones de datos que nos interesen
+from edata.definitions import PricingRules
+# importamos el ayudante
+from edata.helpers import EdataHelper
+# importamos el procesador de utilidades
+from edata.processors import utils
+
+# Preparar reglas de tarificación (si se quiere)
+PRICING_RULES_PVPC = PricingRules(
+ p1_kw_year_eur=30.67266,
+ p2_kw_year_eur=1.4243591,
+ meter_month_eur=0.81,
+ market_kw_year_eur=3.113,
+ electricity_tax=1.0511300560,
+ iva_tax=1.05,
+ # podemos rellenar los siguientes campos si quisiéramos precio fijo (y no pvpc)
+ p1_kwh_eur=None,
+ p2_kwh_eur=None,
+ p3_kwh_eur=None,
+)
+
+# Instanciar el helper
+# 'authorized_nif' permite indicar el NIF de la persona que nos autoriza a consultar su CUPS.
+# 'data' permite "cargar" al helper datos anteriores (resultado edata.data de una ejecución anterior), para evitar volver a consultar los mismos.
+edata = EdataHelper(
+ "datadis_user",
+ "datadis_password",
+ "cups",
+ datadis_authorized_nif=None,
+ pricing_rules=PRICING_RULES_PVPC, # si se le pasa None, no aplica tarificación
+ data=None, # aquí podríamos cargar datos anteriores
+ )
+
+# Solicitar actualización de todo el histórico (se almacena en edata.data)
+edata.update(date_from=datetime(1970, 1, 1), date_to=datetime.today())
+
+# volcamos todo lo obtenido a un fichero
+with open("backup.json", "w") as file:
+ json.dump(utils.serialize_dict(edata.data), file) # se puede utilizar deserialize_dict para la posterior lectura del backup
+
+# Imprimir atributos
+print(edata.attributes)
+```
+
+
+%prep
+%autosetup -n e-data-1.1.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-e-data -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..e0af838
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+4a4eb4bee8ceba5c1a80e03d824cdbcb e-data-1.1.0.tar.gz