Skip to main content

This library provides convenient access to the Citybrain Platform API

Project description

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")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

citybrain_platform-0.4.3.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

citybrain_platform-0.4.3-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file citybrain_platform-0.4.3.tar.gz.

File metadata

  • Download URL: citybrain_platform-0.4.3.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for citybrain_platform-0.4.3.tar.gz
Algorithm Hash digest
SHA256 f5f2ad103cb783873ebf80c8e4c9c60264d5dc32271668a1a88892b316eb1d81
MD5 55be6349b3f77fc37bc873b285fab25a
BLAKE2b-256 dbdf1738c836713b7c70beecf4be1e23ce5b93109050535211929effe98ae536

See more details on using hashes here.

File details

Details for the file citybrain_platform-0.4.3-py3-none-any.whl.

File metadata

File hashes

Hashes for citybrain_platform-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1f2e12eb2db88a4e90f356ba6b3f7d02d69ba947728546efb080915098cd4bef
MD5 161c35b25f9a30c67cd0602d464950ab
BLAKE2b-256 94a731016cd48da1af7359ab3fddeb623a29dea14df92d8baab036ab18110f0b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page