Python Ragic
A Python client for interacting with the Ragic API. This library simplifies making requests to Ragic databases, handling authentication, and working with records.
Table of Contents
Features
- Easy authentication and connection setup
- Read data
- Write new data
- Modify existing records
- Delete records
- Get single records
- Upload files
- Download files
Getting Started
-
Get your API key from Ragic. link
1.1. Add environment variables to
.envfile:RAGIC_URLRAGIC_NAMESPACERAGIC_API_KEY
-
Setup
structure.yaml.2.1. Follow the structure file to define the structure of your database.
2.2. Retrieve the field id from Ragic. link
-
Install the package using pip:
pip install python-ragic
Code Snippets
Load Data (Table-level)
from ragic import RagicAPIClient
client = RagicAPIClient(
base_url=None,
namespace=None,
api_key=None,
version=3,
structure_path="structure.yaml",
)
TAB_NAME = "Sales Management System"
TABLE_NAME = "customer"
data_dict = client.load(
TAB_NAME,
TABLE_NAME,
conditions=[("gender", OperandType.EQUALS, "Male")],
offset=0,
size=10,
other_get_params=OtherGETParameters(subtables=False, listing=False),
ordering=Ordering(order_by="customer_id", order=OrderingType.ASC),
)
if data_dict:
with open("data.json", "w", encoding="utf-8") as f:
f.write(json.dump(data_dict, f, indent=4))
else:
print("No data found.")
Write new data to Ragic database
from ragic import RagicAPIClient
client = RagicAPIClient(
base_url=None,
namespace=None,
api_key=None,
version=3,
structure_path="structure.yaml",
)
TAB_NAME = "Sales Management System"
TABLE_NAME = "customer"
# For field that takes attachment, provide the file path
# If more than one file, provide a list of file paths
data_dict = {
"Name": "John Doe",
"Age Group": "41 - 50",
"Race": "Chinese,
}
resp_dict = client.write_new_data(
TAB_NAME, TABLE_NAME, data=data_dict
)
if resp_dict:
with open("write_response.json", "w", encoding="utf-8") as f:
f.write(json.dump(resp_dict, f, indent=4))
print("Record created successfully.")
else:
print("Failed to create record.")
Modify Data (single record)
from ragic import RagicAPIClient
client = RagicAPIClient(
base_url=None,
namespace=None,
api_key=None,
version=3,
structure_path="structure.yaml",
)
TAB_NAME = "Sales Management System"
TABLE_NAME = "customer"
# For field that takes attachment, provide the file path
# If more than one file, provide a list of file paths
# When modifying a record with an attachment,
# it adds a new file instead of replacing the existing one.
# To replace the existing file, set None to the field name,
# Take note, this approach deletes all existing files from the field.
# Call upload_file method to upload the new file.
data_dict = {
"Name": "John Doe",
"Age Group": "41 - 50",
"Race": "Chinese"
}
record_id = "<ragicId>" # Replace with the actual record ID
resp_dict = client.modify_data(
TAB_NAME,
TABLE_NAME,
data=data_dict,
record_id=record_id
)
Delete Data (single record)
from ragic import RagicAPIClient
client = RagicAPIClient(
base_url=None,
namespace=None,
api_key=None,
version=3,
structure_path="structure.yaml",
)
TAB_NAME = "Sales Management System"
TABLE_NAME = "customer"
record_id = "<ragicId>" # Replace with the actual record ID
resp_dict = client.delete_data(
TAB_NAME,
TABLE_NAME,
record_id=record_id
)
Get Data (single record)
from ragic import RagicAPIClient
client = RagicAPIClient(
base_url=None,
namespace=None,
api_key=None,
version=3,
structure_path="structure.yaml",
)
TAB_NAME = "Sales Management System"
TABLE_NAME = "customer"
record_id = "<ragicId>" # Replace with the actual record ID
resp_dict = client.get_data(
TAB_NAME,
TABLE_NAME,
record_id=record_id
)
Upload files
from ragic import RagicAPIClient
client = RagicAPIClient(
base_url=None,
namespace=None,
api_key=None,
version=3,
structure_path="structure.yaml",
)
TAB_NAME = "Sales Management System"
TABLE_NAME = "customer"
record_id = "<ragicId>" # Replace with the actual record ID
field_name = "file_upload_field" # Replace with the actual field name
file_path = "path/to/your/file.png" # Replace with the actual file path
resp_dict = client.upload_file(
TAB_NAME,
TABLE_NAME,
record_id=record_id,
field_name=field_name,
file_path=file_path
)
Download files
from ragic import RagicAPIClient
client = RagicAPIClient(
base_url=None,
namespace=None,
api_key=None,
version=3,
structure_path="structure.yaml",
)
# format xxxxx@filename.file_extension
file_identifier = "<fileIdentifier>" # Replace with the actual file identifier
output_path = "path/to/save/file.png" # Replace with the desired output path
resp_dict = client.download_file(
file_identifier=file_identifier,
output_path=output_path
)
Metadata
Release files for python-ragic 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| python_ragic-0.3.2.tar.gz | 23.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| python_ragic-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.4 kB
Release files / python_ragic-0.3.2.tar.gz
| Download URL | python_ragic-0.3.2.tar.gz |
|---|---|
| Size | 23.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d873dcf01e81deb3e3d4aeb265ed6bf0133ac62316ccb9608cf4726f901366e3
|
|
BLAKE2b-256 checksum How to use checksums |
bf916e3edd525e00bbdfd45a60ef89d90a9e5f73adddefe005a013f850c36acb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.10.11
|
Release files / python_ragic-0.3.2-py3-none-any.whl
| Download URL | python_ragic-0.3.2-py3-none-any.whl |
|---|---|
| Size | 23.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d8d16447b988a32e37500f999480ceb9ecd34ff279663482f40c82e5b5cc73d
|
|
BLAKE2b-256 checksum How to use checksums |
4b127ce749c3dbeac90276fcdea45659e48a1e66a0a2e94563352b6a8a09159f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.10.11
|