Skip to main content

A CLI tool for managing GraphQL stores

Project description

Documentacion del proyecto GraphQLStore

Resumen del proyecto

GraphQLStore es una aplicacion CLI disenada para gestionar bases de datos usando GraphQL. Esta etapa del proyecto es temprana, con una estructura basica.

Estructura del proyecto

graphqlstore/
├── .github/workflows/      # configuracion CI/CD
├── source/                 # codigo fuente
├── tests/                  # archivos de prueba
└── (archivos de configuracion)
    ├── Pipfile              # gestion de dependencias
    ├── Pipfile.lock         # bloque de dependencias
    ├── pyproject.toml       # configuracion del proyecto y empaquetado
    ├── setup.cfg            # configuracion adicional de setuptools
    ├── pytest.ini           # configuracion de pytest
    ├── .pre-commit-config.yaml  # configuracion de pre-commit
    ├── .gitignore           # archivos ignorados por git
    └── README.md            # documentacion del proyecto
└── LICENSE                  # licencia del proyecto

Implementacionn actual

Funcionalidad principal

La aplicacion actualmente tiene una implementacion minima con:

  • Un punto de entrada CLI simple en main.py que muestra un mensaje de bienvenida.
  • Estructura basica del proyecto con directorios de codigo fuente y pruebas.

Entorno de desarrollo

Las siguientes herramientas de desarrollo estan configuradas:

  1. Gestión de Paquetes

    • Uso de Pipfile con pipenv para la gestión de dependencias
    • Dependencia principal: rich para una salida mejorada en terminal
    • Varias dependencias de desarrollo incluyendo herramientas de prueba y calidad de código
  2. Herramientas de calidad de código

    • Configuración de pre-commit para hooks automáticos
    • Formateo de código con black
    • Análisis estático con flake8 y pylint
    • Comprobación de tipos con mypy
  3. Pruebas

    • Uso de pytest para ejecutar pruebas
    • pytest-cov para medir la cobertura de pruebas
    • Configuración de pytest.ini para generar informes de cobertura
    • Prueba simple en test_main.py que verifica el mensaje de bienvenida
  4. Configuración de empaquetado

    • pyproject.toml para definir metadatos del proyecto, dependencias y configuraciones de herramientas
    • Punto de entrada CLI configurado como graphqlstore = "source.main:main"
    • setup.cfg para configuraciones adicionales de setuptools, incluyendo referencia al archivo de licencia

Flujo CI/CD

dos pipelines de CI/CD están configurados para automatizar el proceso de desarrollo y despliegue:

  1. CI Pipeline (.github/workflows/ci.yml):

    • Ejecuta pruebas y verifica la calidad del código en cada push a la rama principal o en pull requests.
  2. CD Pipeline (.github/workflows/cd.yml):

    • Desencadenado por etiquetas de versión (v*..)
    • Construye el paquete
    • Sube artefactos
    • Publica en PyPI
    • Crea lanzamientos en GitHub

Licencia

El proyecto usa una licencia privada que prohíbe:

  • Redistribución
  • Modificación
  • Creación de obras derivadas
  • Uso comercial
  • Compartición pública

Inicio rápido

Con el fin de facilitar el inicio rápido del proyecto, se ha configurado un entorno de desarrollo con pipenv. Esto permite gestionar las dependencias y ejecutar scripts de manera sencilla.

# NOTA: Asegúrate de tener pipenv instalado. Si no lo tienes, puedes instalarlo con pip, pipx o tu gestor de paquetes preferido.

# Instalar las dependencias incluidas las de desarrollo
pipenv install --dev

# Opcionalmente, si necesitas una "primera linea de defensa" para la calidad del código, puedes ejecutar:
pipenv run pre-commit install

# Ejecutar las pruebas
pipenv run pytest

# Ejecutar el script principal
pipenv run python source/main.py

La otra es descargando el proyecto desde pypi:

# Instalar el paquete desde PyPI
pip install graphqlstore
# Ejecutar el comando CLI
graphqlstore

Siguientes pasos

El proyecto está en una fase inicial de desarrollo. Los siguientes pasos incluyen:

  • Expandir la intefaz CLI para incluir más comandos
  • Implementar la funcionalidad de GraphQL
  • Agregar capacidades de conexión a bases de datos
  • Mejorar la documentación y ejemplos de uso

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graphqlstore-0.2.0.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

graphqlstore-0.2.0-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file graphqlstore-0.2.0.tar.gz.

File metadata

  • Download URL: graphqlstore-0.2.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for graphqlstore-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b29dfbfca2b994750c52c7095b94ff3c7331c40dbd2a6692230743435dbc01dc
MD5 3cbe704d16c29a62bbe615c6b188f4cb
BLAKE2b-256 aafece16ae37fff8a2ca46f2a052e9ae6d4ae1c1f2f1f60004444cbf9d07737a

See more details on using hashes here.

File details

Details for the file graphqlstore-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: graphqlstore-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for graphqlstore-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4bc94b7f0dff93416e978e3fd6686bc629e42551b74b53b1f03bf67a13f91675
MD5 73ff7b3940b7e882adc8b5c5b4caa1ff
BLAKE2b-256 6e81f1054126c1dfca107bf59bb8bb3f5fab9f11f1e6ddc08ed8b51c663cf13a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page