Skip to main content

A place to dump might-be-useful-again code as an alternative of leaving in a notebook where it will never be found again

Project description

titbit

A place to dump might-be-useful-again code as an alternative of leaving in a notebook where it will never be found again

To install: pip install titbit

Documentation

Examples

md_toc_string

Generate a markdown table of contents (TOC) string from markdown. The markdown can be a string, a filepath, or a URL.

>>> url = 'https://raw.githubusercontent.com/i2mint/titbit/master/README.md'
>>> toc_string = md_toc_string(url)
>>> print(toc_string)
- [titbit](#titbit)
- [Examples](#examples)
    - [md_toc_string](#md_toc_string)
    - [git_action_on_projects](#git_action_on_projects)
    - [mermaid_to_graphviz](#mermaid_to_graphviz)
    - [filter_code](#filter_code)
    - [bound_properties_refactor](#bound_properties_refactor)
    - [ensure_ast](#ensure_ast)

git_action_on_projects

Take git actions all the projects in the list of projects. A project can be a folder path or a module, or the name of a module/package.

Tip: Use functools.partial to set the action, on_error and egress and get the function you need to perform bulk actions.

Usage:

>>> from titbit import git_action_on_projects
>>> projects = [
...     some_package, "some_package_name", "some_package_dir_path"
... ]  # doctest: +SKIP
>>> # By default, the git action performed is to pull
>>> git_action_on_projects(projects)  # doctest: +SKIP

mermaid_to_graphviz

Converts mermaid code to graphviz code.

>>> mermaid_code = '''
... graph TD
... A --> B & C
... B & C --> D
... '''
>>> graphviz_code = mermaid_to_graphviz(mermaid_code)
>>> print(graphviz_code)  # doctest: +NORMALIZE_WHITESPACE
digraph G {
    A -> B , C
    B , C -> D
}
>>> mermaid_code = '''
... graph TD
...     A[Score] --> B[Part]
...     B --> C[Measure]
... '''
>>> print(mermaid_to_graphviz(mermaid_code))
digraph G {
    A [label="Score"]
    B [label="Part"]
    A -> B
    C [label="Measure"]
    B -> C
}

filter_code

Produce a version of the code that is filtered by the filt filter function.

>>> from titbit import filter_code
>>> code_str = '''
... a = b + c
... print(a)
... d[0] = a
... for i in range(1, 10):
...     d[i] = d[i-1] + b
... def f(x):
...     return x + 1
... e = [d, a, f]
... '''
>>> import ast
>>> filtered_code_str = filter_code(code_str, lambda x: isinstance(x, ast.Assign))
>>> assert filtered_code_str.strip() == ('''
... a = b + c
... d[0] = a
... e = [d, a, f]
... '''.strip())

bound_properties_refactor

Generate code that refactors "flat code" into a reusable "controller" class. Also checkout the BoundPropertiesRefactor class that does all the work: With it, you'll be able to compute intermediate datas that may be of interest.

>>> from titbit import bound_properties_refactor
>>> code_str = '''
... apple = banana + carrot
... date = 'banana'
... egg = apple * 2
... egg = egg + 1
... '''
>>>
>>> refactored_code = bound_properties_refactor(code_str)
>>> print(refactored_code)  # doctest: +NORMALIZE_WHITESPACE
@property
def apple(self):
    return banana + carrot
<BLANKLINE>
date = 'banana'
<BLANKLINE>
@property
def egg(self):
    egg = self.apple * 2
    egg = egg + 1
    return egg
<BLANKLINE>

ensure_ast

def ensure_ast(code: AST) -> AST:
    """
    Ensures that the input is an AST node, returning it as-is if already an AST.

    If input is a string, parses it as Python code and returns the resulting AST.
    If the input is a module object, it will get the code, parse it, and return an AST.
    """

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

titbit-0.1.8.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

titbit-0.1.8-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file titbit-0.1.8.tar.gz.

File metadata

  • Download URL: titbit-0.1.8.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.15

File hashes

Hashes for titbit-0.1.8.tar.gz
Algorithm Hash digest
SHA256 dd36cf36e75e75aa2f29ab9f54c08df501e50bd8c31719fa62390d2f5c223fa0
MD5 a7bcfc3534b4bf6eb4aee2f33a3bfbea
BLAKE2b-256 3ba5cb55b2a3c933097bbb04b11fe143edd45be5ba84d9db8f6a6f59e6cb8200

See more details on using hashes here.

File details

Details for the file titbit-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: titbit-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 14.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.15

File hashes

Hashes for titbit-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 40ef0206fbd74672a3591dd1bf4ecf0de14d73a805856d2398930ecfb7b5a88e
MD5 e99add410ddaf05e3c9f9b3ac81756dd
BLAKE2b-256 4985934507578920b7bcbf1d063f78296c4d75d8fe98fced9dbeacb1b70ffc2e

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