Metadata-Version: 2.4
Name: better-is-numeric
Version: 1.1
Summary: An enhancement of str.isnumeric()
Home-page: https://codeberg.org/Butter/numerical
Author: LiterallyButter
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: The Unlicense (Unlicense)
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: summary

# numerical

Python library I made to learn regex and to have a better version of str.isnumeric()

Uploading to PyPI was a horrible experience and they rejected the name without telling me why (too similar to numerics?), so its called better-is-numeric there.

Supports decimals and negative numbers, managed by flags.

Even if you don't need to support decimals or negative numbers, this is
still better than str.isnumeric(), since that function for some reason
counts exponents (⅐, for example) as numeric.

Should work down to Python 3.9.

Importing is kind of ugly, maybe I'll fix it one day. In the meantime, you can avoid this and the PyPI name by just downloading the code from the Codeberg repository and putting it in the same directory as your program, for a simple `from numerical import *`

Here's some example code:

```python
from is_numeric.numerical import *

print(is_numeric("1", {NM_ALLOW_NEGATIVE, NM_ALLOW_DECIMALS}))
```

This will print True, since the NM_ALLOW flags do not require, they only allow.
If you want to REQUIRE a negative number or decimals, simply check:

`if "-" in whatever_string_you_are_checking`

`if "." in whatever_string_you_are_checking`

I've copied this from the docstring(?) of the function, since it describes the flags:

```
This function uses a "flag" system to control what's allowed and what isn't.
You can pass these in a set called "flags" in the arguments.
Certain flags switch the function to dictionary output, to include whatever data you requested.
The simple boolean output is still included in the dictionary output, in the "numeric" field.
The flags are in variables, but you can also use their string values.
1: NM_ALLOW_NEGATIVE - Set to the string "AN" and enabled by default, this flag allows negative numbers.
2: NM_ALLOW_DECIMALS - Set to the string "AD", this flag allows numbers with decimals.
3: NM_ALLOW_LEADING_ZERO - Set to the string "AZ" and enabled by default, this flag allows "invalid" numbers like 01.
4: NM_RETURN_MATCH - Set to the string "RM", this flag uses dictionary output and returns the raw output of the match function inside the "match" field.
5: NM_RETURN_REGEX - Set to the string "RX", this flag uses dictionary output and returns the constructed regex inside the "regex" field.
```

NM_ALLOW_LEADING_ZERO is enabled by default to save time.
Something like int() will ignore the leading zero anyway.

If you want no flags, try passing `set()` (a blank set)

If you want the default flags, don't pass your own set.

That is, JUST give the string. `is_numeric(string)`
