This repo is used to create scripts for fetching data from different services. The common denominator is that the various data is being fetched with the Python library dlt which simplifies the process of downloading data from RestAPI's.
This CLI-tool is used in github.com/NINANor/miljodata-tasks.
The scripts are CLI-based, and the usage can be understood by typing:
uv run datasync --helpFor example to understand how the CLI works for fetching data from ubw you can do:
uv run datasync ubw --helpTo set up the correct environment variables a .env.example has been added to the project. Copy this template and rename it to .env and set the values.
Install uv: https://docs.astral.sh/uv/getting-started/installation/
git init
uv sync --dev
git add .
git commit -m "Initial commit"
uv run pre-commit install # optionalTo execute your software you have two options:
Option 1: Direct execution
uv run main.py --helpOption 2: Run as installed package
uvx --from . datasyncJust run uv run main.py and you are good to go!
To update your project with the latest changes from the template, run:
uvx --with copier-template-extensions copier update --trustYou can keep your previous answers by using:
uvx --with copier-template-extensions copier update --trust --defaultspre-commit is a set of tools that help you ensure code quality. It runs every time you make a commit.
First, install pre-commit:
uv tool install pre-commitThen install pre-commit hooks:
pre-commit installTo run pre-commit on all files:
pre-commit run --all-filesRun uv add <package-name> to install a package. For example:
uv add requestsIf you are using visual studio code install the recommended extensions
- uv
- pre-commit (optional)
Environment variables are variables that are not populated in your code but rather in the environment that you are running your code. This is extremely useful mainly for two reasons:
- security, you can share your code without sharing your passwords/credentials
- portability, you can avoid using hard-coded values like file-system paths or folder names
you can place your environment variables in a file called .env, the main.py will read from it. Remember to:
- NEVER commit your
.env - Keep a
.env.examplefile updated with the variables that the software expects