Skip to main content

Dynamic Attributes Mixin

Project description

dynattr

Developer Guide

Setup

# create conda environment
$ mamba env create -f env.yml

# update conda environment
$ mamba env update -n dynattr --file env.yml

Install

pip install -e .

# install from pypi
pip install dynattr

nbdev

# activate conda environment
$ conda activate dynattr

# make sure the dynattr package is installed in development mode
$ pip install -e .

# make changes under nbs/ directory
# ...

# compile to have changes apply to the dynattr package
$ nbdev_prepare

Publishing

# publish to pypi
$ nbdev_pypi

# publish to conda
$ nbdev_conda --build_args '-c conda-forge'
$ nbdev_conda --mambabuild --build_args '-c conda-forge -c dsm-72'

Usage

Installation

Install latest from the GitHub repository:

$ pip install git+https://github.com/dsm-72/dynattr.git

or from conda

$ conda install -c dsm-72 dynattr

or from pypi

$ pip install dynattr

Documentation

Documentation can be found hosted on GitHub repository pages. Additionally you can find package manager specific guidelines on conda and pypi respectively.

Example

from atyp import StrQ
from typing import ClassVar
class Foo(DynamicAttributesMixin):
    X: str = 'X'
    x: str = 'X'
    Z: ClassVar[str] = 'Z'

    toinstname = lambda x: f'_{x}'
    totypename = lambda x: x.upper()

    def __init__(self, x: StrQ = None):
        self.x = (x or self.x)

f, b = Foo(x='x'), Foo()
(f.x, f.X, f.Z), (b.x, b.X, b.Z), (Foo.x, Foo.X, Foo.Z, )
(('x', 'X', 'Z'), ('X', 'X', 'Z'), ('X', 'X', 'Z'))
f.getinstclsattr('x', toinstname=None, totypename=None)
'X'

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

dynattr-0.0.5.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

dynattr-0.0.5-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file dynattr-0.0.5.tar.gz.

File metadata

  • Download URL: dynattr-0.0.5.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for dynattr-0.0.5.tar.gz
Algorithm Hash digest
SHA256 50d7265b51f36f95e28e4d5a80adeadcef58641971516d6e9cb22ed57d4057e4
MD5 a19f20a661d581c0de82a24b01fd65d1
BLAKE2b-256 e52720527c22176c0ee44e88c31350b2a517bfa952d97b5a8391c74a1ce45c2e

See more details on using hashes here.

File details

Details for the file dynattr-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: dynattr-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for dynattr-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1febf3ec9f1ae1d4d923b86872ee501489bd14355d560abf1fc4c355c68d4b23
MD5 63bbc8c288d7a1ba68c157e0975bd297
BLAKE2b-256 63435bb9448dba925fbd572ca979bacecf3d692c2d85c7f24e4b8b44cfa0c389

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