Skip to main content

An enhancement of str.isnumeric()

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

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:

from is_numeric.numerical import *

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

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 since it probably makes the regex faster. 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)

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

better_is_numeric-1.1.1.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

better_is_numeric-1.1.1-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file better_is_numeric-1.1.1.tar.gz.

File metadata

  • Download URL: better_is_numeric-1.1.1.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for better_is_numeric-1.1.1.tar.gz
Algorithm Hash digest
SHA256 81e2f7515090f2407a9233dddf0d81892d72a0b3efda18ff486ebb242566bab9
MD5 fa0c61bc6c71c5b7a4113afb60153ef4
BLAKE2b-256 2ee3efa92e57009eb11a8636f1b35b21078d316a915129bd8a6621fb3e6d5e2c

See more details on using hashes here.

File details

Details for the file better_is_numeric-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for better_is_numeric-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 150c77f3c41002c4734ddeaaf4b0c8c708ab289bfa58e3d041b47d275848b8ca
MD5 747e29c28d7c21b5c66042856d3aebfc
BLAKE2b-256 78b559b2592e6d283cb4de49a865573d5897c41888de26626922b505ec987986

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page