Metadata-Version: 2.1
Name: cmixf
Version: 0.1.2
Summary: A CMIXF-12 library
Home-page: https://github.com/satra/cmixf
Author: satra
Author-email: satra@mit.edu
Maintainer: satra
Maintainer-email: satra@mit.edu
License: Apache License, 2.0
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Scientific/Engineering
Provides: cmixf
Requires-Python: >= 3.7
Description-Content-Type: text/markdown; charset=UTF-8
Requires-Dist: sly
Requires-Dist: click
Provides-Extra: all
Requires-Dist: pytest (>=4.4.0) ; extra == 'all'
Requires-Dist: pytest-cov ; extra == 'all'
Requires-Dist: pytest-env ; extra == 'all'
Requires-Dist: pytest-xdist ; extra == 'all'
Requires-Dist: pytest-rerunfailures ; extra == 'all'
Requires-Dist: codecov ; extra == 'all'
Requires-Dist: black ; extra == 'all'
Requires-Dist: pre-commit ; extra == 'all'
Provides-Extra: dev
Requires-Dist: pytest (>=4.4.0) ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: pytest-env ; extra == 'dev'
Requires-Dist: pytest-xdist ; extra == 'dev'
Requires-Dist: pytest-rerunfailures ; extra == 'dev'
Requires-Dist: codecov ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Provides-Extra: test
Requires-Dist: pytest (>=4.4.0) ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: pytest-env ; extra == 'test'
Requires-Dist: pytest-xdist ; extra == 'test'
Requires-Dist: pytest-rerunfailures ; extra == 'test'
Requires-Dist: codecov ; extra == 'test'
Provides-Extra: tests
Requires-Dist: pytest (>=4.4.0) ; extra == 'tests'
Requires-Dist: pytest-cov ; extra == 'tests'
Requires-Dist: pytest-env ; extra == 'tests'
Requires-Dist: pytest-xdist ; extra == 'tests'
Requires-Dist: pytest-rerunfailures ; extra == 'tests'
Requires-Dist: codecov ; extra == 'tests'

![Python package](https://github.com/sensein/cmixf/workflows/Python%20package/badge.svg?branch=master)

# cmixf

A library to parse [CMIXF-12](https://people.csail.mit.edu/jaffer/MIXF/CMIXF-12).

This will install a CLI `cmixf` when installed.

At present this assumes that a number is provided before any unit.

## For users:

```
$ pip install cmixf # requires a python 3 environment 
$ cmixf
cmixf > 1mV
type='REAL', value='1'
type='SUBMULTIB', value='mV'
1mV
cmixf > 1oC
type='REAL', value='1'
type='UNITC', value='oC'
1oC
cmixf > <Ctrl+D to exit>
```

If it fails it will raise an error and exit. 

```
$ cmixf
cmixf > 1mM
type='REAL', value='1'
type='UNITC', value='m'
Traceback (most recent call last):
  File "/Users/satra/software/miniconda3/envs/mixf/bin/cmixf", line 11, in <module>
    load_entry_point('cmixf', 'console_scripts', 'cmixf')()
  File "/Users/satra/software/sensein/cmixf/cmixf/parser.py", line 217, in main
    for tok in lexer.tokenize(text):
  File "/Users/satra/software/miniconda3/envs/mixf/lib/python3.8/site-packages/sly/lex.py", line 443, in tokenize
    tok = self.error(tok)
  File "/Users/satra/software/sensein/cmixf/cmixf/parser.py", line 54, in error
    raise ValueError("Line %d: Bad character %r" % (self.lineno, t.value[0]))
ValueError: Line 1: Bad character 'M'
```

## For developers:

After cloning the repo do:

1. pip install -e .[dev]
2. pre-commit install


