Skip to main content

MOOVAI TOOLBOX

This repository contains reusable code to expedite development. To use repository, ensure you are using Python 3.6.

Installation:

To use this package, install using pip:

pip install moovai

Google Cloud:

This folder contains code to handle GCP resources. Prior to using the methods here, you need to be authenticated to GCP. If you are using a service account, and have the key JSON file:

  • On Linux or MacOS
export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
  • On Windows:
set GOOGLE_APPLICATION_CREDENTIALS=[PATH]

cloud-storage

Before using the code here, first make sure that you have a bucket on GCS. If you don't, create one.

upload_to_gcs:

Uploads a local file to a folder on google cloud storage. The file is then DELETED locally.

Parameters:
  • file: REQUIRED: [STRING] Local file path to upload to google cloud storage.
  • bucket_name: REQUIRED: [STRING] Name of your bucket.
  • folder: REQUIRED: [STRING] Folder path to where you want your file to be uploaded to on GCS.

returns: GCS URI where the file was uploaded

Sample usage:
from moovai.google_cloud import cloud_storage

file = "/path/to/my/file.txt"
bucket_name = "my_bucket"
folder = "Folder/Subfolder/"

cloud_storage.upload_to_gcs(file, bucket_name, folder)
# returns "gs://my_bucket/Folder/Subfolder/file.txt"
download_file_gcs:

Downloads file from google cloud storage to local disk.

Parameters:
  • gcs_uri: REQUIRED. [STRING] URI of file located on google cloud storage to be downloaded

returns: None. GCS file is downloaded locally.

Sample usage:
from moovai.google_cloud import cloud_storage

gcs_uri = "gs://my_bucket/Folder/Subfolder/my_file.txt"

cloud_storage.download_file_gcs(gcs_uri)
# file "my_file.txt" downloaded locally

bigquery

get_schema_from_json:

Takes a schema.json file and converts it into a schema file compatible with BigQuery.

Parameters:
  • schema_path: REQUIRED. [STRING] Path to your_schema.json file.

returns: schema to plug into BigQuery upload job.

Sample usage:
from moovai.google_cloud import bigquery

schema_file = "/path/to/my/schema.json"
bigquery.get_schema_from_json(schema_file)
get_schema_from_csv:

Takes a csv file containing your data and extracts the schema from your file. It is recommended to simply use BigQuery's auto-detect schema feature. Use this as a last resort.

Parameters:
  • csv_file_path: REQUIRED. [STRING] Path to csv file.

returns: schema to plug into BigQuery upload job.

Sample usage:
from moovai.google_cloud import bigquery

csv_file = "/path/to/my/file.csv"
bigquery.get_schema_from_csv(csv_file)
upload_local_file_to_bq:

Uploads local file to BigQuery. schema_path and schema are optional arguments. They are exclusive of one another, provide only one if you want to.

Parameters:
  • file: REQUIRED. [STRING] Path to local CSV file to upload
  • dataset_id: REQUIRED. [STRING] Name of your BigQuery dataset.
  • table_id: REQUIRED. [STRING] Name of your BigQuery table to query.
  • schema_path: OPTIONAL. [STRING] Path to schema.json file.
  • schema: OPTIONAL. [STRING] schema compatible with BigQuery.
  • overwrite: OPTIONAL. [BOOL] Defaults to False. if set to True, BigQuery will overwrite table, else, it will append new data to table.

returns: None.

Sample usage:
from moovai.google_cloud import bigquery

file = "/path/to/my_file.csv"
dataset_id = "my_dataset_id"
table_id = "my_table_id"
bigquery.upload_local_file_to_bq(file, dataset_id, table_id)
upload_gcs_file_to_bq:

Uploads file from cloud storage to BigQuery. schema_path and schema are optional arguments. They are exclusive of one another, provide only one if you want to.

Parameters:
  • gcs_uri: REQUIRED. [STRING] Path to CSV file located on cloud storage to upload to BigQuery.
  • dataset_id: REQUIRED. [STRING] Name of your BigQuery dataset.
  • table_id: REQUIRED. [STRING] Name of your BigQuery table to query.
  • schema_path: OPTIONAL. [STRING] Path to schema.json file.
  • schema: OPTIONAL. [STRING] schema compatible with BigQuery.
  • overwrite: OPTIONAL. [BOOL] Defaults to False. if set to True, BigQuery will overwrite table, else, it will append new data to table.

returns: None.

Sample usage:
from moovai.google_cloud import bigquery

gcs_uri = "gs://my_bucket/Path/To/my_file.csv"
dataset_id = "my_dataset_id"
table_id = "my_table_id"
bigquery.upload_local_file_to_bq(gcs_uri, dataset_id, table_id)
generate_sql_query:

Generates a SQL query string to use to query a BigQuery table.

Parameters:
  • project: REQUIRED. [STRING] Project ID
  • dataset_id: REQUIRED. [STRING] Name of your BigQuery dataset.
  • table_id: REQUIRED. [STRING] Name of your BigQuery table to query.
  • columns: OPTIONAL. [ARRAY] List of column names you want to select.
  • conditions: OPTIONAL. [ARRAY] List of conditions to satisfy.

returns: STRING. Standard SQL query string.

Sample usage:
from moovai.google_cloud import bigquery

project = "my_project_id"
dataset_id = "my_dataset_id"
table_id = "my_table_id"
bigquery.generate_sql_query(project, dataset_id, table_id)
#returns "SELECT * FROM `project.dataset_id.table_id`" (return everything from table)

columns = ["col1", "col2"]
conditions = ["Date >= TIMESTAMP('2019-05-01')", "col3 < 3"]

bigquery.generate_sql_query(project, dataset_id, table_id, columns=columns, conditions=conditions)
#returns "SELECT col1, col2 FROM `project.dataset_id.table_id` WHERE Date >= TIMESTAMP('2019-05-01') AND col3 < 3" (returns col1 and col2 that meet the specified conditions)
get_data_from_bq:

Takes a SQL query string (Standard SQL) and returns pandas dataframe

Parameters:
  • sql_query: REQUIRED. [STRING] string representing the query you want to make.

returns: pandas Dataframe containg the result of your query.

Sample usage:
from moovai.google_cloud import bigquery

sql_query = "SELECT * FROM `my_project.my_dataset.my_table`"
bigquery.get_data_from_bq(sql_query)

Metadata

Release files for moovai 0.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for moovai 0.0.9
File Size Uploaded
moovai-0.0.9.tar.gz 10.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for moovai 0.0.9
File Interpreter ABI Platform
moovai-0.0.9-py3-none-any.whl Python 3 none any Details

Total release size: 34.2 kB

Release files / moovai-0.0.9.tar.gz

Download URL moovai-0.0.9.tar.gz
Size 10.6 kB
Tags Source
SHA-256 checksum
How to use checksums
efb75910d3f30c46817bfd5dad48dd092354c757207a79d17ed444df5fc1c43b
BLAKE2b-256 checksum
How to use checksums
3d60597c66c91f9cbcee74927b2964656c458bbc3da176846da6e56e77cce768
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.8

Release files / moovai-0.0.9-py3-none-any.whl

Download URL moovai-0.0.9-py3-none-any.whl
Size 23.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
17bcd52431597cd468cb85fadc90b4144f5e418372455f4264322f35d6e28f89
BLAKE2b-256 checksum
How to use checksums
281870787fcc932f1da45183693470e56b07bdc0bc72396f22528ba085d3ba92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.8

Release history Release notifications | RSS feed

This release

0.0.9 This release

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page