Python wrapper for BI SomConnexió API
Project description
This library is a Python wrapper for accessing Som Connexió BI API.
Operations
- Notify the BI API with an invoice number
- Recreate the PDF of an invoice
- Create a temporal token to access an invoice
Installation
$ pip install bi-sc-client
Configuration Environment
To use this library you must expose the needed environment variables:
BI_URL:
BI_USER:
BI_PASSWORD:
These environment variables are needed to locate and access to the BI API.
Usage
- Notify the BI API with an invoice number
from bi_sc_client.services.notify_invoice_number import NotifyInvoiceNumber
NotifyInvoiceNumber(invoice_id=123, invoice_number="AB-1234Z").run()
- Recreate the PDF of group invoices
from bi_sc_client.services.invoice_pdf_regenerate import InvoicePDFRegenerator
InvoicePDFRegenerator(invoice_numbers=["AB-1234Z", "AB-1234Z"]).run()
- Create a temporal token to access an invoice
from bi_sc_client.resources.token import Token
from bi_sc_client.client import BISomConnexioClient
client = BISomConnexioClient()
token_instance = Token(client=client)
print(token_instance.token)
Development
Setup environment
- Install
pyenv
curl https://pyenv.run | bash
- Build the Python version
pyenv install 3.7.13
- Create a virtualenv
pyenv virtualenv 3.7.13 bi-sc-client
- Install dependencies
pyenv exec pip install -r requirements.txt
- Install pre-commit hooks
pyenv exec pre-commit install
Install the package locally in development mode
When we are using this package in other projects, we need to install it to use as import in the other files. Install the package in development mode helps us to modify the package and use the new version in live in the other project.
pip install -e .
Test the HTTP request
We are using the HTTP recording plugin of Pytest: pytest-recording.
With VRC we can catch the HTTP responses and then, execute the tests using them.
To add a new test:
- Expose the needed envvars. Look for them at the Configuration Environment section
- Execute the tests using
pytestcommand: - If you are writing a new test that is making requests, you should run:
$ pytest --record-mode=once path/to/your/test
- You might need to record requests for an specific tests. In that case make sure to only run the tests affected and run
$ pytest --record-mode=rewrite path/to/your/test
- Add the new
cassetesto the commit and push them. - The CI uses the cassetes to emulate the HTTP response in the test.
Run test suite
$ tox
Formatting
We use Black as formatter.
First to commit, tun the black command:
$ black .
All done! ✨ 🍰 ✨
29 files left unchanged.
Darker
Black is a great formatter, but to mantain your code without execute the black command avery time, you can configure your IDE to use darker to format only the changed or added code when you save the file.
Release process
Update CHANGELOG.md following this steps:
- Add any entries missing from merged merge requests.
- Duplicate the
[Unreleased]header. - Replace the second
Unreleasedwith a version number followed by the current date. Copy the exact format from previous releases.
Then, you can release and publish the package to PyPi:
- Update the
__version__var in__init__.pymatching the version you specified in the CHANGELOG. - Open a merge request with these changes for the team to approve
- Merge it, add a git tag on that merge commit and push it.
- Once the pipeline has successfully passed, your package had been published.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bi_sc_client-0.0.7.tar.gz.
File metadata
- Download URL: bi_sc_client-0.0.7.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0686ec80428877f38a6e8ab8f42a2af61ed4aefb617fcdafb89dde09eaaf5124
|
|
| MD5 |
81aeb9dbe012420a722fa49f05e19467
|
|
| BLAKE2b-256 |
42b9a9d0b4e8f0394290808eb166d487b165b3ece7f805a18ea1494f2cd04a14
|
File details
Details for the file bi_sc_client-0.0.7-py2.py3-none-any.whl.
File metadata
- Download URL: bi_sc_client-0.0.7-py2.py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a2bd40b43f96368353e023b57ee0f815b5587c7c28ce075f99f507e58bb0184
|
|
| MD5 |
72c1d5fe03b5305e711d307c4044d5a4
|
|
| BLAKE2b-256 |
c409aa3e4aa2ae1fc1cc00477f62198304282bd5d3f59dce2ef76a46fb969945
|