Skip to content

Python library to access LIneA's database from Python code.

License

Notifications You must be signed in to change notification settings

linea-it/dblinea

Repository files navigation

LIneA Database Library


Python package Documentation Status Coverage Status

Python library to access LIneA's database from Python code. Useful to retrieve data inside LIneA's JupyterHub platform.

Documentation: Read the Docs page

Authors

Installation

Install dblinea with pip

  pip install dblinea

Requirements

  • sqlalchemy>=1.4.25
  • psycopg2>=2.9.1
  • numpy>=1.19.4
  • pandas>=1.2.0
  • astropy>=5.0.0
pip install sqlalchemy psycopg2 numpy pandas astropy

Future plans

Sub-package to allow users to send user-generated data products to LIneA Science Server (e.g., a list of targets for visual inspection).

Development

Python 3.8: https://tecadmin.net/install-python-3-8-ubuntu/

  • Dependencias:
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev liblzma-dev
python3.8 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install wheel setuptools twine pytest pytest-runner pytest-cov black

Executar os testes:

python setup.py pytest --cov --cov-report term-missing --cov-report html

Fazer o Build: https://medium.com/analytics-vidhya/how-to-create-a-python-library-7d5aea80cc3f

python setup.py sdist bdist_wheel

Testando o pacote apos o build

python3.8 -m venv venv
source venv/bin/activate
pip install sqlalchemy psycopg2 numpy pandas astropy

Para instalar usando o pacote local

pip install --force-reinstall <path>/dist/wheelfile.whl

Abrir um terminal e importar a classe DBBase. ou utilizar o comando.

python -c 'from dblinea import DBBase'

Outro Teste

(env) glauber: ~ $ python
Python 3.8.12 (default, Jan 28 2022, 15:50:21)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from dblinea import DBBase
>>> a = DBBase()
>>> a.get_engine()
Engine(postgresql+psycopg2://untrustedprod:***@desdb4.linea.gov.br:5432/prod_gavo)
>>>

Publish in PyPi Test

Check if build is ok for publish

python -m twine check dist/*
python -m twine upload --verbose --repository testpypi dist/*

Check in https://test.pypi.org/manage/project/dblinea/releases/

Publish in PyPi Oficial

https://realpython.com/pypi-publish-python-package/

twine upload dist/*

Executar o Lint em busca de errors de sintaxe ou formatação.

black . --check

Executar o Lint para corrigir automaticamente os errors encontrados.

black .

Documentation with sphinx

Generate Api Docs

cd docs
sphinx-apidoc -f -o ./source ../dblinea

Build html docs

make html

TODO: Trocar Coveralls por codecov https://about.codecov.io/