Citybrain Platform Python Library
The Citybrain Platform Python Library provides convenient access to the Citybrain Platform API from applications written in the Python language.
Installation
If you just want to use the package, just run:
pip install --upgrade citybrain-platform
Usage
The library needs to be configured with your account's secret key which is available on www.citybrain.org. Either set it as the CITYBRAIN_APIKEY environment variable before using the library:
export CITYBRAIN_APIKEY='...'
Or set citybrain_platform.api_key to its value:
import citybrain_platform
citybrain_platform.api_key = "..."
Example Code
Examples of how to use this Python library to accomplish various tasks.
Storage
Upload File
import citybrain_platform
res = citybrain_platform.Storage.upload_file(remote_path="test/test/test.file", local_file="test.localfile")
print(res)
Download File
import citybrain_platform
citybrain_platform.Storage.download_file(remote_path="test/test/test.file", local_file="test.localfile")
Delete File
import citybrain_platform
res = citybrain_platform.Storage.delete_file(remote_path="test/test/test.file")
print(res)
List Files
import citybrain_platform
res = citybrain_platform.Storage.list_files(prefix="testprefix", direct_only=False)
print(res)
User Defined Function Operations
Create Function
result = citybrain_platform.Computing.create_function(
name="test_udf", # function name
class_file="testudf.py", # the file where the class is located
class_name="TestUDF2", # class name
comment="test function",
resources=["testudf.py", "other.py"] # resources used by this function
)
print(result)
Create Resource
from citybrain_platform import ResourceType
result = citybrain_platform.Computing.create_resource(
name="testudf.py", # resource name, must contain extension
type=ResourceType.PY, # resource type
comment="test resource",
local_file="udf.py" # local resource file
)
print(result)
Table Operations
Create Table
import citybrain_platform
from citybrain_platform.computing.data_types import Column, ColumnType
columns = [
Column("col_str", ColumnType.STRING, "this is a comment"),
Column("col_id", ColumnType.BIGINT),
]
partition_columns = [
Column("col_pt", ColumnType.INT, "a column for partitioning")
]
ok = citybrain_platform.Computing.create_table(
name="test_tbl",
columns=columns,
partition_columns=partition_columns,
# Set those parameters if you want to create external table from Storage files
# storage_filesource="datasource directory", # the directory of source files
# storage_filetype=data_types.ExternalFiletype.PARQUET # file format of the source, current support PARQUET and CSV
)
print(ok)
Get Table Schema
import citybrain_platform
schema = citybrain_platform.Computing.get_table_schema(name="test_tbl")
print(schema)
Upload Table Data
import citybrain_platform
result = citybrain_platform.Computing.upload_table_data(name="test_tbl", append=True, csv_filepath="aa.csv", partition_key={"col_pt": "19"})
print(result)
Truncate Table
import citybrain_platform
result = citybrain_platform.Computing.truncate_table(name="test_tbl", partition_key={"col_pt": "19"})
print(result)
Drop Table
import citybrain_platform
result = citybrain_platform.Computing.drop_table(name="test_tbl")
print(result)
Make Table Public Or Private To Others
import citybrain_platform
public_table_name = citybrain_platform.Computing.update_table_status(name="test_tbl", public=False)
print(public_table_name)
List Available Tables
import citybrain_platform
tables = citybrain_platform.Computing.list_tables()
print(tables)
Job Operations
Create Job
import citybrain_platform
job_id = citybrain_platform.Computing.create_job(sql="select col_str from test_tbl limit 12;")
print(job_id)
Get Job Status
import citybrain_platform
job_status = citybrain_platform.Computing.get_job_status(job_id="...")
print(job_status)
Stop Running Job
import citybrain_platform
result = citybrain_platform.Computing.stop_job(job_id="...")
print(result)
Download Terminated Job Results
import citybrain_platform
citybrain_platform.Computing.get_job_results(job_id="...", filepath="results.csv")
Dataset Operations
Add Storage Data
import citybrain_platform
citybrain_platform.Data.add_storage(name="", description="", file_path="")
Add Remote Data
import citybrain_platform
citybrain_platform.Data.add_remote(name="", description="", remote_url="")
Download Data
import citybrain_platform
citybrain_platform.Data.download(data_address="...", save_file="test.txt")
Metadata
Release files for citybrain-platform 0.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| citybrain_platform-0.4.3.tar.gz | 10.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| citybrain_platform-0.4.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.9 kB
Release files / citybrain_platform-0.4.3.tar.gz
| Download URL | citybrain_platform-0.4.3.tar.gz |
|---|---|
| Size | 10.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5f2ad103cb783873ebf80c8e4c9c60264d5dc32271668a1a88892b316eb1d81
|
|
BLAKE2b-256 checksum How to use checksums |
dbdf1738c836713b7c70beecf4be1e23ce5b93109050535211929effe98ae536
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Release files / citybrain_platform-0.4.3-py3-none-any.whl
| Download URL | citybrain_platform-0.4.3-py3-none-any.whl |
|---|---|
| Size | 11.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1f2e12eb2db88a4e90f356ba6b3f7d02d69ba947728546efb080915098cd4bef
|
|
BLAKE2b-256 checksum How to use checksums |
94a731016cd48da1af7359ab3fddeb623a29dea14df92d8baab036ab18110f0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|