Collection of functions to wrap the Azure SDK
Project description
Downer Azure Helper
Collection of functions to wrap the Azure SDK and ArcGIS.
Assume argument are of type str unless stated otherwise.
Logging
Postgres Log Queue
Simple handler to enter logs directly to postgres databases; uses psycopg2 for connection. Creates a new table if does not already exist, and groups logs by job_id. Logs are stored in a queue and dumped on save method invocation. Set print_logs=True to print immediately to console as well.
Quick Setup
from downerhelper.logs import setup_queue
queue = setup_queue(logger_name, job_id, table, db_config_name, keyvault_url, print_logs=False)
queue.add('INFO', "Test message!")
queue.save()
Store database config in Azure Key Vault with format <dbname>,<user>,<password>,<host>.
Manual Setup
from downerhelper.logs import PostgresLogQueue
db_config = {
'dbname': <dbname>,
'user': <user>,
'password': <password>,
'host': <host>,
}
queue = PostgresLogQueue(logger_name, job_id, table, db_config: dict(str, str), print_logs=False)
Provide database config dictionary.
Key Vault Secrets
Get Secret Value
from downerhelper.secrets import get_secret_value
value = get_secret_value(secret_name, keyvault_url, queue=None: PostgresLogQueue, credential=DefaultAzureCredential()) -> str | None
Retrieve the value of a keyvault secret. Returns None on error.
Get Config Dictionary
from downerhelper.secrets import get_config_dict
config = get_config_dict(secret_name, keyvault_url) -> dict
Retrieve a database config secret stored like <dbname>,<user>,<password>,<host>. Raises an error if config cannot be read.
Get Key Url Combination
from downerhelper.secrets import get_key_url
key, url = get_secret_value(secret_name, keyvault_url, queue=None: PostgresLogQueue, credential=DefaultAzureCredential()) -> tuple(str, str)
Retrieve the key/url combination for a logic app. Store secret as <key>/<url> to require only one request to get the access info for a logic app (instead of two). Raises an error if secret has incorrect format.
GIS
ArcGIS Functions
Get Access Token
from downerhelper.gis import get_access_token
token = get_access_token(root, username, pwd, queue: PostgresLogQueue) -> str
Token has a 60 minute expiry. Raises an error on failure.
Query Feature Service/Layer
from downerhelper.gis import query_feature_service
data = query_feature_service(token, feature_service, where, queue: PostgresLogQueue, add_where=None) -> dict
add_where is an additional where clause, to be used if some calls have similar where structures. Returns arcgis return structure. Raises an error on failure.
Query Attachments
from downerhelper.gis import query_attachments
data = query_attachments(token, feature_service, object_id, queue: PostgresLogQueue) -> dict
Find attachments for object_id. Returns arcgis return structure. Raises an error on failure.
Get Attachment
from downerhelper.gis import get_attachment
attachment = get_attachment(token, feature_service, object_id, attachment_id, queue: PostgresLogQueue)
Get attachment data for attachment_id on object_id. Returns attachment content directly. Raises an error on failure.
Update Feature Service
from downerhelper.gis import update_feature_service
update_feature_service(token, feature_service, features: list, queue: PostgresLogQueue)
Argument features is defined by arcgis docs. Raises an error on failure.
Timestamp To Datetime
from downerhelper.gis import timestamp_to_datetime
date_str = timestamp_to_datetime(timestamp: int | str, queue: PostgresLogQueue)
Convert arcgis timestamp to datetime string. Raises an error on failure.
Sharepoint
Note: sharepoint list display names (column names) are often not the same as the data label. To find data label you can,
- sort by the target column, in the url find the
sortFieldparam. - go to column settings and select the target column, then in the url find the
Fieldparam.
Get List
from downerhelper.sharepoint import get_list
sp_list = get_list(site_address, list_name, keyvault_url, queue: PostgresLogQueue, pagination_limit=100: int) -> list(dict)
Returns sharepoint list items as a list of dictionary data. Keys are sharepoint data labels not display names. Raises an error on failure.
Form List Item
from downerhelper.sharepoint import form_list_item
form_list_item(attributes: dict(str, str), title, pairs: dict(str, str), queue: PostgresLogQueue, delims=[', ']: list(str)) -> dict
Uses arcgis record attributes from query_feature_service functions. Argument pairs represents the mapping of sharepoint data labels (keys of return dict) to arcgis attribute keys (values of return dict). Raises an error on failure.
Create List Item
from downerhelper.sharepoint import create_list_item
item = create_list_item(item: dict(str, str), site_address, list_name, key_url: tuple(str, str), queue: PostgresLogQueue)
Uploads an item to target sharepoint list, where key_url represents the key/url access combination of the logic app. Raises an error on failure.
Upload Attachments
from downerhelper.sharepoint import upload_attachments
upload_attachments(token, feature_service, object_id, site_address, list_name, item_id, key_url: tuple(str, str), queue: PostgresLogQueue)
Uploads all attachments for arcgis target object_id to sharepoint. Raises an error on failure (one or more attachments failing to upload triggers failure).
Get List Item Attachments
from downerhelper.sharepoint import get_list_attachments
attachmnets = get_list_attachments(item_id, site_address, list_name, key_url: tuple(str, str), queue: PostgresLogQueue) -> list
Returns empty list on failure.
Warning!
The following snippet shows incorrect usage. Modules must be declared and imported seperately.
import downerhelper
value = downerhelper.secrets.get_secret_value(secret_name, keyvault_url)
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
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 downerhelper-0.1.2.tar.gz.
File metadata
- Download URL: downerhelper-0.1.2.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44ee7d13584d25ed0863cf09d38a0818a8ac634ae321c98905de9564c9de9304
|
|
| MD5 |
0090454fe259a5526b68bed48fdb71e0
|
|
| BLAKE2b-256 |
23d1a437a6d6f509f7c5df6a8934744e286440a03b58607652b1d14f49f68d64
|
File details
Details for the file downerhelper-0.1.2-py3-none-any.whl.
File metadata
- Download URL: downerhelper-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42c2821c991877eb77d5b4758f559da9aa9a8ae2eda85d033a70e45fed03e8de
|
|
| MD5 |
4a633dfb286b8001d78343fe7159e11a
|
|
| BLAKE2b-256 |
8b1cab7d452b2028741e3248e49529fe5a401a7e140022ef932cc04c9c8918cc
|