Skip to main content

No project description provided

Project description

gallop

🐎 New level of python develop. Source code from github

More dynamic in design, more configuration driven

PyPI version License Test pypi build

   [-;-/=_
    `-; \=_       ___        _________    __    __    ____  ____ 
      ) ,"-...--./===--__   / ____/   |  / /   / /   / __ \/ __ \ 
    __|/      /  ]`        / / __/ /| | / /   / /   / / / / /_/ /
   /;--> >...-\ <\_       / /_/ / ___ |/ /___/ /___/ /_/ / ____/ 
   `- <<,      7/-.\,     \____/_/  |_/_____/_____/\____/_/      
       `-     /(   `-     

Install

pip install gallop

Configuration Management

from gallop.config import BaseConfig

config = BaseConfig(a=1)
config.a = 2
config.b = 3

config.to_json("some/path.json")
config.to_yaml("some/path.yaml")

Run python task from config

You can turn any callable execution in to configuration, eg save the following

func_name: use:logging.warning
args:
  - "hello world"

to sometask.yaml and run gallop sometask

Is the same to run the python script

import logging
logging.warning("hello world")

param: configuration

We can change the value on the run, while pointing to the position in the config, using a chain of keys (keys to dict or list).

eg. to change the key args, of its 1st element, we can run

gallop sometask --param:args.0 changed_world

Advanced usage

Some simple grammar

  • checkin: somekey, save the result to a centralized dictionary with key somekey
  • checkout: somekey, use the result from the centralized dictionary with key somekey
  • checkout: env:DATA_HOME, use the result from the environment variable DATA_HOME
  • use:some.module, use or import the module some.module as the callable, eg
    • func_name: use:os.path.join, use the function os.path.join
    • func_name: use:pandas.DataFrame, use the class pandas.DataFrame

Examples

Inference BERT model

If you have transformers installed, you can run the following example directly to featurize a sentence

pred_task:
  - func_name: use:transformers.AutoModel.from_pretrained
    args:
      - bert-base-uncased
    checkin: model
    description: |
      Load pretrained model
  - func_name: use:transformers.AutoTokenizer.from_pretrained
    args:
      - bert-base-uncased
    checkin: tokenizer
    description: |
      Load pretrained tokenizer
  - func_name: tokenizer
    args:
      - - "Hello, the capital of [MASK] is Paris"
    kwargs:
      return_tensors: pt
      max_length: 128
      truncation: True
      padding: True
    checkin: inputs
  - func_name: use:logging.warning
    args:
      - func_name: model
        kwargs:
          input_ids:
            checkout: inputs.input_ids
          attention_mask:
            checkout: inputs.attention_mask
        checkin: features

This equals to the following python script

import logging
from transformers import AutoModel, AutoTokenizer

model = AutoModel.from_pretrained("bert-base-uncased")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
inputs = tokenizer(
    "Hello, the capital of [MASK] is Paris",
    return_tensors="pt",
    max_length=128,
    truncation=True,
    padding=True,
)
logging.warning(model(
    input_ids=inputs.input_ids,
    attention_mask=inputs.attention_mask,
))

Save the yaml to run_bert.yaml and you can use gallop run_bert --output features to run the task.

Run in commandline with changed value, and printout one of the checkout value

gallop run_bert --loglevel debug --output features

And run it with CHANGED VALUE

gallop run_bert 、
     --param:pred_task.2.args.0.0 "The [MASK] house is where the POTUS live and work"   

Related project

From the same lead author

  • Python category management accelerated with Rust
  • Data science basic toolset forgebox

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

gallop-0.0.6.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

gallop-0.0.6-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file gallop-0.0.6.tar.gz.

File metadata

  • Download URL: gallop-0.0.6.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for gallop-0.0.6.tar.gz
Algorithm Hash digest
SHA256 00f90466f3e8c7e3da7d9e6e8ba6f7a3214e9c22116f37bb65976d9bf4c8e337
MD5 4f7fd2ba73cc909f37d273dd816ab2e5
BLAKE2b-256 5c2fde59cc061c0e25c8fe0f509f0456732b9ed829e8ce358f838fe624d7ad85

See more details on using hashes here.

File details

Details for the file gallop-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: gallop-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for gallop-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e97984c68fda04bb3717241bc8b6e8978c13cfa791c381fbe51bb86e0a0cd0e4
MD5 5b426ed57e45cce2b480ad1f251c0163
BLAKE2b-256 f76d13a932d8864b6c2a1533889b9d3967a2adc5f79c9e7fda1960a3caaba0ab

See more details on using hashes here.

Supported by

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