GithubHelp home page GithubHelp logo

oigonzalezp2024 / python-software-architecture Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 109 KB

Esta es una propuesta de arquitectura de software en python, donde se facilita la actualización automática de dependencias que no se encuentren en gestores de paquetes de python, sino en repositorios remotos.

Home Page: https://github.com/oigonzalezp2024/python-software-architecture/blob/main/README.md

License: GNU General Public License v3.0

Python 82.85% CSS 4.80% HTML 12.34%
architecture defusedxml fonttools fpdf2 gitdb gitpython pillow python software python-software-architecture

python-software-architecture's Introduction

Python Software Architecture

Esta es una propuesta de arquitectura de software en python, donde se facilita la actualización automática de dependencias que no se encuentren en gestores de paquetes de python, sino en repositorios remotos.

El software clonará las versiones más actualizadas de los repositorios establecidos como dependencias.

"./project/projectConfig/projectConfig.py"

y los reinstalará automaticamente en:

./project/dependencies

Esto lo hará antes de la ejecución del proyecto, en caso tal que no se encuentre incluido aún, para prevenir que se rompa.

Estructura y lógica de funcionamiento:

A continuación se estable la estructura de directorios del proyecto.

Descripción comando
./enterprise Facilita el uso de repositorios externos como dependencias.
./enterprise/enterpriseDeployment Está para establecer repositorios externos como dependencias.
./enterprise/enterpriceDependecies Garantiza que las dependencias esten presentes.
./enterprise/enterpriseCore Indexa dependencias por herencia en una sola clase.
./project Escenario de trabajo del desarrollador.
./project/data Está para trabajar en el acceso y tranformación de data.
./project/projectConfig Está para configurar la clonación automántica de las dependencias a ser utilizadas en el projecto.
./project/dependencies Está para almacenar y llevar un control transparente de las dependencias de software externos usados en el proyecto, en especial, se agradece que sea software libre debidamente licenciado.
./project/extract Está para configurar procesos de extracción de data.
./project/transformData Está para configurar procesos de transformación de data.
./project/reports Está para almacenar los reportes generados en PDF.

Modo de uso:

En esta demo se ejecutaron exitosamente los códigos de repositorios externos, sin la necesidad de alterar su código, por decirlo de alguna manera, fueron usados como librerías:

script comando comando
demoClienteWebserviceSipsa.py Accede a los datos de la Webservice de SIPSA - DANE. py demoClienteWebserviceSipsa.py
demoDelimitedData.py Delimita la data por periodos de tiempo para un posterior análisis. py demoDelimitedData.py
demoTransformData.py Toma la data delimitada por periodos de tiempo, la trasforma de acuerdo al modelo de negocio y la guarda en: ./project/data/transformedData/json py demoTransformData.py
demoMatplotDraw.py Toma la data transformada, la interpreta y genera gráficos de líneas para guardarlos en: ./project/data/transformedData/images py demoMatplotDraw.py
demoAll.py Ejecuta todos los scripts en cola. py demoAll.py

Documentación técnica

Configuración del entorno de desarrollo.

Paso Descripción comando
Paso 1 Crear el entorno de trabajo. python -m venv env
Paso 2 Activar el entorno de trabajo. ./env/Scripts/activate
Paso 3 Actualizar el gestor de paquetes. python -m pip install --upgrade pip
Paso 4 Prepare la receta de librerías. pip install -r requirements.txt
Paso 5 Ejecuta todos los scripts en cola. py demoAll.py
Paso 6 Visualiza la información. flask run --debug

Librerías del proyecto.

librería Descripción Comando
fpdf2 Permite la creación de PDFs python -m pip install fpdf2
GitPython Facilita la clonación de repositorios externos python -m pip install GitPython
zeep Permite el acceso a SOAP python -m pip install zeep
xmltodict Hace que trabajar con XML se sienta como si estuviera trabajando con JSON , python -m pip install xmltodict

Con la instalación de la librería fpdf2 se instalarán las siguientes librerías de manera automática:

  • defusedxml==0.7.1
  • fonttools==4.51.0
  • fpdf2==2.7.8
  • pillow==10.3.0

Con la instalación de la librería GitPython se instalarán las siguientes librerías de manera automática:

  • gitdb==4.0.11
  • GitPython==3.1.43
  • smmap==5.0.1

Con la instalación de la librería zeep se instalarán las siguientes librerías de manera automática:

  • attrs==23.2.0
  • certifi==2024.2.2
  • charset-normalizer==3.3.2
  • idna==3.6
  • isodate==0.6.1
  • lxml==5.2.1
  • platformdirs==4.2.0
  • pytz==2024.1
  • requests==2.31.0
  • requests-file==2.0.0
  • requests-toolbelt==1.0.0
  • six==1.16.0
  • urllib3==2.2.1
  • zeep==4.2.1

Realice sus pruebas, actualizaciones o modificaciones.

Puedes actualizar, contribuir y mejorar el presente software, es libre. Licencia GNU v3.
No esta permitido modificar la licencia de trabajos derivados de este proyecto.
Por norma internacional debes conservar el mismo tipo de licencia.

Actualizar la receta.

Si agregas nuevas librerías al proyecto, no olvides actualizar la receta.

pip freeze > requirements.txt

Comprobar que todo está en orden.

Paso Descripción comando
Paso 1 Desactive el entorno de trabajo. deactivate
Paso 2 Elimine el entorno anterior. rm -R env
Paso 3 Cree un entorno de python. python -m venv env
Paso 4 Active el entorno de trabajo. ./env/Scripts/activate
Paso 5 Actualice el gestor de paquetes. python -m pip install --upgrade pip
Paso 6 Instale las librerías necesarias para operar. pip install -r requirements.txt
Paso 7 Ejecuta todos los scripts en cola. py demoAll.py
Paso 8 Visualiza la información. flask run --debug
Paso 9 Finalice su gestión. deactivate

python-software-architecture's People

Contributors

oigonzalezp2024 avatar

Watchers

 avatar

python-software-architecture's Issues

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.