A library for uploading data to and downloading reports from NEMO cloud solution
Project description
NEMO Library
This library helps you with access to NEMO APIs
Installation
pip install nemo_library
Sources
please find all sources on github: https://github.com/H3rm1nat0r/nemo_library
configuration
please create a file “config.ini”. This is an example for the content:
[nemo_library] nemo_url = https://enter.nemo-ai.com tenant = <your tenant> userid = <your userid> password = <your password> environment = [prod|dev|demo]
If you don’t want to pass userid/password in a file (which is readable to everybody that has access to the file), you can use Windows Credential Manager or MacOS key chain to store your password. Please use “nemo_library” as “Program name”. As an alternative, you can programmatically set your password by using this code
from nemo_library.sub_password_handler import *
service_name = "nemo_library"
username = "my_username"
password = "my_password"
pm = PasswordManager(service_name, username)
# Set password
pm.set_password(password)
print(f"Password for user '{username}' in service '{service_name}' has been stored.")
# Retrieve password
retrieved_password = pm.get_password()
if retrieved_password:
print(f"The stored password for user '{username}' is: {retrieved_password}")
else:
print(f"No password found for user '{username}' in service '{service_name}'.")
Methods
Projects
getProjectList method
Return list of projects (as pandas Dataframe)
from nemo_library import NemoLibrary
nl = NemoLibrary()
df = nl.getProjectList()
getProjectID method
Return internal id of project identified by given project name as shown in the NEMO UI
from nemo_library import NemoLibrary
nl = NemoLibrary()
print(nl.getProjectID(projectname="Business Processes"))
ReUploadFile method
ReUpload a CSV file into an existing project
from nemo_library import NemoLibrary
nl = NemoLibrary()
nl.ReUploadFile(projectname="21 CRM", filename="./csv/hubspot.csv")
Args: - projectname (str): Name of the project. - filename (str): Name of the file to be uploaded. - update_project_settings (bool, optional): Whether to update project settings after ingestion. Defaults to True. - datasource_ids (list[dict], optional): List of datasource identifiers for V3 ingestion. Defaults to None. - global_fields_mapping (list[dict], optional): Global fields mapping for V3 ingestion. Defaults to None. - version (int, optional): Version of the ingestion process (2 or 3). Defaults to 2 - trigger_only (bool, optional): Whether to trigger only without waiting for task completion. Applicable for V3. Defaults to False.
V2 uploads a file plain into the project. V3 merges the data with the Business Processes project (needs more parameters)
synchronizeCsvColsAndImportedColumns method
Sychronize columns with CSV file and NEMO meta data. This method compares the list of columns found in CSV with the list of columns defined in meta data and adds or removes missing or not-any-longer-used columns to and from meta data. For performance reasons, you should not use it on a daily base, but after changes in the source, it makes sense to call it before uploading a file.
Here’s some example code from Gunnar’s reporting
nl = NemoLibrary()
if synch_columns:
nl.synchronizeCsvColsAndImportedColumns(
projectname=PROJECT_NAME_SNR0,
filename=folder_reporting_input_pa() + "/snr0_NEMO.csv",
)
time.sleep(120)
nl.ReUploadFile(
projectname=PROJECT_NAME_SNR0,
filename=folder_reporting_input_pa() + "/snr0_NEMO.csv",
)
Reports
LoadReport method
Load a report from NEMO and return this as pandas dataframe
from nemo_library import NemoLibrary
nl = NemoLibrary()
df = nl.LoadReport(report_guid="b82cfed8-81a7-44e0-b3da-c76454540697")
project_id
Optional parameter. If you want to get reports for non-default ERP projects. Please provide the project GUID (you can retrieve them by running getProjectList)
report_guid
This methode takes 1 mandatory parameter, the report_guid. You can find “your” guid in NEMO meta data. Just open the definition of the report in meta data and copy the GUID from your browser URL.
The report “(SAMPLE) Replenishment Time Analysis Purchased Parts” for example has this URL: https://enter.nemo-ai.com/nemo/metadata/report/b82cfed8-81a7-44e0-b3da-c76454540697 and thus the GUID you need is then “b82cfed8-81a7-44e0-b3da-c76454540697”
max_pages
By default all pages from the report are loaded. You can optionally restrict the amount of data by providing max_pages parameter and you’ll get not more than this number of pages (usually 1 page holds 20 records)
Contributions
Contributions are welcome! If you would like to suggest improvements or have found a bug, please open an issue or submit a pull request.
License
This project is released under the Unlicense. You can find the full text of the Unlicense in the UNLICENSE file. This means that the code is released into the public domain, and you are free to use, modify, distribute, and do whatever you want with it, without any restrictions or requirements.
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file nemo_library-1.1.2.tar.gz
.
File metadata
- Download URL: nemo_library-1.1.2.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77daf78057cce1bb0859fa28922cb4885aa1617bb2fbd62a5c14b6b14595af27 |
|
MD5 | 2bd0e247ae16f86f664030387d10024b |
|
BLAKE2b-256 | 1572ecdbc55b824f4c0ba9b022f7a8ac9cac2ddcd198e09cff8c0a125e5c9598 |
Provenance
File details
Details for the file nemo_library-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: nemo_library-1.1.2-py3-none-any.whl
- Upload date:
- Size: 19.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c92962eb742d54d69ee00b93546843faea31c503f28c6b7a57283c432d3877be |
|
MD5 | 12bce203e06db5607f28cb88adf046bf |
|
BLAKE2b-256 | 837dd044574faa77282fb77b437ad75db4078caf7c8d41f1798ef0a0cf9d6740 |