Skip to main content

CSS <An+B> microsyntax parser

Project description

ANPlusB

This tiny package provides a toolkit for working with the <An+B> CSS microsyntax.

Installation

This package is available on PyPI:

$ pip install a-n-plus-b

Usage

This package only ever parses the <An+B> microsyntax. It does not support the of <selector> syntax.

Examples

>>> from a_n_plus_b import ANPlusB
>>> ANPlusB(2, 1)
ANPlusB(2n+1)
>>> str(_)
'2n+1'
>>> ANPlusB(4)
ANPlusB(4)
>>> ANPlusB(4, 0)
ANPlusB(4n)
>>> {ANPlusB(1, 0), ANPlusB(True, False)}
{ANPlusB(n)}
>>> from itertools import islice
>>> ANPlusB(3, 2)
ANPlusB(3n+2)
>>> values = _.values()
>>> values
_InfiniteRange(start = 2, step = 3)
>>> list(islice(values, 10))
[2, 5, 8, 11, 14, 17, 20, 23, 26, 29]
>>> 6405429723686292014 in values
True
>>> instance = ANPlusB(4, -7)
>>> list(instance.indices(40))
[1, 5, 9, 13, 17, 21, 25, 29, 33, 37]
>>> list(instance.indices(40, from_last = True))
[40, 36, 32, 28, 24, 20, 16, 12, 8, 4]
>>> list(instance.indices(40, order = 'descending'))
[37, 33, 29, 25, 21, 17, 13, 9, 5, 1]
>>> list(instance.indices(40, from_last = True, order = 'ascending'))
[4, 8, 12, 16, 20, 24, 28, 32, 36, 40]
>>> ANPlusB.parse('odd')
ANPlusB(2n+1)
>>> ANPlusB.parse('even')
ANPlusB(2n)
>>> ANPlusB.parse('4')
ANPlusB(4)
>>> ANPlusB.parse('-1n')
ANPlusB(-n)
>>> ANPlusB.parse('+0n-8')
ANPlusB(-8)
>>> ANPlusB.parse('0n+0124')
ANPlusB(124)
>>> ANPlusB.from_complex(5j - 2)
ANPlusB(5n-2)
>>> from a_n_plus_b import n
>>> 2 * n
ANPlusB(2n)
>>> n * -3 - 1
ANPlusB(-3n-1)
>>> 4 - n * 9
ANPlusB(-9n+4)

Contributing

Please see Contributing for more information.

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

a_n_plus_b-0.2.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

a_n_plus_b-0.2.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file a_n_plus_b-0.2.0.tar.gz.

File metadata

  • Download URL: a_n_plus_b-0.2.0.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.1

File hashes

Hashes for a_n_plus_b-0.2.0.tar.gz
Algorithm Hash digest
SHA256 379248ee6e91d974495416929abbe389ae2c8ed901b0b6a9088f1b889381f2b4
MD5 ae3961f4dbaf58c544f54e455d058e0f
BLAKE2b-256 f388f25c24b21f8cfc5caca363e064a04fb3df89294ac5d888fcfd39279acbc9

See more details on using hashes here.

File details

Details for the file a_n_plus_b-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: a_n_plus_b-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.1

File hashes

Hashes for a_n_plus_b-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 823df5f43aadc08b1a002424528269271269c90552b68cb2527c789e1c8e0884
MD5 4d84ad6567ddfd60fb24a885eb0033b7
BLAKE2b-256 ecb897697f09e2ab2fd05fd86d743316a9f8b7e36fd81dd664b92d63feb80336

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