Django INPI allows you to use the INPI API to to get information about companies.
Features
- Siren/Siret fields (
django_inpi.fields.SIRETField,django_inpi.fields.SIRENField) which ensure that submitted Siren/Siret are numbers, and that their lenght is respectively 14 & 9 chars. - Forms with those custom fields (
django_inpi.forms.SIRETForm,django_inpi.forms.SIRENForm) - An API (
django_inpi.api.INPIApi) which allows you to get a token and make your own requests to the INSE API. Available functions:login(): send a login POST request to INPI API, stores the Bearer token in your api instance (automatically called inINPIApi.__init__(), callINPIApi(skip_init=True)to skip login (if so, you will not have a token, and will need to login yourself)).get(siret=None, siren=None): get company details using it's siret/siren. Returns the whole json from INPI API.get_generic_company_data(siret=None, siren=None): get company details using it's siret/siren. Returns a formatted json containing only a few values (see examples below).
- 4 Mixins that you can use in your views:
django_inpi.views.SIRETFormGetAllJsonMixin: UsesSIRETForm, and callsINPIApi.get(siret).django_inpi.views.SIRETFormGetGenericCompanyDataMixinUsesSIRETForm, and callsINPIApi.get_generic_company_data(siret).django_inpi.views.SIRENFormGetAllJsonMixin: UsesSIRENForm, and callsINPIApi.get(siren).django_inpi.views.SIRENFormGetGenericCompanyDataMixinUsesSIRENForm, and callsINPIApi.get_generic_company_data(siren).
Install
- Install the package:
python3 -m pip install django-inpi
- Add those apps to your
INSTALLED_APPS:"django_inpi",
- Add your user/pass in your env vars & project settings:
DJANGO_INPI_USERNAME = "username" DJANGO_INPI_PASSWORD = "username"
from os import getenv DJANGO_INPI_USERNAME = getenv("DJANGO_INPI_USERNAME", None) DJANGO_INPI_PASSWORD = getenv("DJANGO_INPI_PASSWORD", None)
- That's all folks!
Examples
View
# my_app/urls.py
urlpatterns = [
# ...
path(
"get-company-infos-from-siret/",
views.GetCompanyInfosView.as_view(),
name="get_company_infos",
),
]
# my_app/views.py
from django_inpi.views import SIRENFormGetAllJsonMixin
# ...
class GetCompanyInfosView(
SIRENFormGetAllJsonMixin, # <-- our mixin here
FormView, # required, our mixin does not inherit from any *View
):
def get_success_url(self):
return reverse(
"my_app:get_company_infos",
)
API
This package comes with an API that you can use independently from the Field or Form. Here's how to use it:
from django_inpi.api import INPIApi
inpi_api = INPIApi()
# use `inpi_api = INPIApi(skip_init=True)` if you want to call the login function yourself
# Get full json
siret = "01234567891234"
company_infos = inpi_api.get(siret=siret)
# OR
siren = "123456789"
company_infos = inpi_api.get(siren=siren)
from django_inpi.api import INPIApi
inpi_api = INPIApi()
# Get partial json
siret = "01234567891234"
generic_company_infos = inpi_api.get_generic_company_data(siret=siret)
# OR
siren = "123456789"
generic_company_infos = inpi_api.get_generic_company_data(siren=siren)
generic_company_infos wil contains those data:
{
"siren": 123456789,
"data": {
"name": "NAME",
"legal_status": {
"full_name": "Full legal status name",
"acronym": "FLSN"
},
"address": {
"street_number": "1",
"street_type": "STREET TYPE",
"street_name": "STREET NAME",
"postal_code": "01234",
"city": "CITY NAME",
"full_address": "1 STREET TYPE STREET NAME 01234 CITY NAME",
"country": "FR"
},
"manager": {
"first_name": "MANAGER FIRST NAME",
"last_name": "MANAGER LAST NAME"
},
}
}
Config
DJANGO_INPI_USERNAME(no default, required): You must set this value in your settings in order to be able to access the INPI API.DJANGO_INPI_PASSWORD(no default, required): You must set this value in your settings in order to be able to access the INPI API.
You must have an account on the INPI website in order to set your credentials, see here for registering a new account or here to login.
DJANGO_INPI_LOGIN_URL(defaulthttps://registre-national-entreprises.inpi.fr/api/sso/login): Set this var in your settings if you want to use a custom (selfhosted?) api.
Metadata
Release files for django-inpi 0.4.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_inpi-0.4.5.tar.gz | 28.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_inpi-0.4.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.4 kB
Release files / django_inpi-0.4.5.tar.gz
| Download URL | django_inpi-0.4.5.tar.gz |
|---|---|
| Size | 28.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
59432f026350333b86203ada5d35e7c460d5cafea0794dd37b47965b914dbdb0
|
|
BLAKE2b-256 checksum How to use checksums |
8ecf9b22d260d6b171f3be84b6593e79094b994d2c45c68557e8d8bc7d653387
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / django_inpi-0.4.5-py3-none-any.whl
| Download URL | django_inpi-0.4.5-py3-none-any.whl |
|---|---|
| Size | 30.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5c288088e051eb8f29b402c07ae22c6dd76b8e82ec2930d67235c86a283103d6
|
|
BLAKE2b-256 checksum How to use checksums |
d2ecf8f84cbe42f61ed3a5a1a855c83b41a17b214919d7d9fc20c2683799af8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|