npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mathlib-npm-new

v1.0.0

Published

MathLib is a simple Python library for basic mathematical operations, including arithmetic and algebraic functions. It's designed to be easy to use and extendable for more advanced mathematical operations.

Downloads

5

Readme

MathLib: A Simple Python Library for Basic Mathematical Operations

MathLib is a simple Python library for basic mathematical operations, including arithmetic and algebraic functions. It's designed to be easy to use and extendable for more advanced mathematical operations.

Features

  • Arithmetic Operations: Addition, subtraction, multiplication, and division.
  • Algebraic Operations: Solving simple linear equations.

Important steps

Step 1: Set Up the Project Structure

First, set up your directory structure:

MathLib/
├── mathlib/
│   ├── __init__.py
│   ├── arithmetic.py
│   ├── algebra.py
│   ├── complex_numbers.py
│   ├── logarithmic.py
│   ├── matrix_operations.py
│   ├── power_roots.py
│   ├── random_utils.py
│   ├── statistics.py
│   ├── trigonometry.py
│   └── utility.py
├── tests/
│   ├── test_arithmetic.py
│   ├── test_algebra.py
│   ├── test_complex_numbers.py
│   ├── test_logarithmic.py
│   ├── test_matrix_operations.py
│   ├── test_power_roots.py
│   ├── test_random_utils.py
│   ├── test_statistics.py
│   ├── test_trigonometry.py
│   └── test_utility.py
├── setup.py
├── README.md
└── LICENSE

Step 2: Write the Package Code

mathlib/__init__.py

This file makes the mathlib directory a package.

# mathlib/__init__.py

from .arithmetic import add, subtract, multiply, divide, power
from .algebra import solve_linear, solve_quadratic
from .trigonometry import sin, cos, tan, arcsin, arccos, arctan
from .statistics import mean, median, variance, standard_deviation
from .matrix_operations import matrix_addition, matrix_multiplication, matrix_determinant, matrix_inverse
from .complex_numbers import complex_addition, complex_subtraction, complex_multiplication, complex_division, complex_magnitude, complex_phase
from .random_utils import random_integer, random_float
from .utility import factorial, gcd, lcm

__all__ = [
    'add', 'subtract', 'multiply', 'divide', 'power',
    'solve_linear', 'solve_quadratic',
    'sin', 'cos', 'tan', 'arcsin', 'arccos', 'arctan',
    'mean', 'median', 'variance', 'standard_deviation',
    'matrix_addition', 'matrix_multiplication', 'matrix_determinant', 'matrix_inverse',
    'complex_addition', 'complex_subtraction', 'complex_multiplication', 'complex_division', 'complex_magnitude', 'complex_phase',
    'random_integer', 'random_float',
    'factorial', 'gcd', 'lcm'
]

Crete the python files for various kind of mathematical functions.

Step 3: Write Tests

Create some basic tests for your package.

Step 4: Set Up the Package Metadata

setup.py

# setup.py

from setuptools import setup, find_packages

setup(
    name='mathlib',
    version='0.1',
    packages=find_packages(),
    description='A simple math library with basic operations',
    long_description=open('README.md').read(),
    long_description_content_type='text/markdown',
    author='Arun Kumar Pandey',
    author_email='[email protected]',
    url='https://github.com/arunp77/mathlib-package.git',
    license='MIT',
    install_requires=[],
    classifiers=[
        'Programming Language :: Python :: 3',
        'License :: OSI Approved :: MIT License',
        'Operating System :: OS Independent',
    ],
)

This setup.py file is used to install the package using pip. It includes metadata such as

Testing

To run the tests for this project, use pytest:

pytest tests/

This will run the test suite located in the tests directory, ensuring that all functions work as expected.

To check the individial operations, go to the test folder and run each file with pytest. FOr example, to check the operations insdie the functions defined in algebra.py, run:

pytest algebra.py

Installation

  • Step-1: Install the Package Locally

    You can install MathLib directly from the source code:

    git clone https://github.com/arunp77/Data-engineering-tools.git

    Navigate to the root directory of your project (where setup.py is located)

    cd /Data-engineering-tools/mathlib

    and then run:

    pip install -e . -v

    The -e flag stands for "editable," which means any changes you make to the code will immediately be reflected without needing to reinstall the package. Here -v will give you more detailed output about what is happening during the installation process.

    alt text

    We can alsi install it using:

    pip install mathlib

    alt text

  • Step 2: Verify Installation

    After running the installation, you can verify that the package was installed by running:

    pip show mathlib

    This should display information about the mathlib package, such as the version and location.

    Verify Import in Python Shell: Try importing mathlib directly in the Python shell to ensure it is correctly recognized:

    >>> import mathlib
    
    >>> mathlib

    We can also install mathlib, directly using setup.py file, using:

    python setup.py install --verbose

    This will give you more detailed output about what is happening during the installation process.

    If you're using pip install, you can add the -v option for verbose output:

  • Step 3: Run the Tests Once the package is installed, you should run the tests to ensure everything is working as expected.

    Navigate to the root directory of your project and run:

      pytest tests/

    This will execute the tests defined in tests/test_arithmetic.py and tests/test_algebra.py. If all the tests pass, it indicates that your package is functioning correctly.

  • Step 4: Create Docekrimage

    docker build -t arunp77/mathlib:latest .

    and then push it to DOcker.

    docker push arunp77/mathlib:latest

    Here, you must remember that, you must have created a Docker Access token from the DOcker hub and then saved it to your Github secrets. FOr more details on this, you can follow step by step guide provided at my documentation page created for another project

    Image of the library is available at: https://hub.docker.com/r/arunp77/mathlib

Contributing

Contributions are welcome! If you'd like to improve MathLib, please fork the repository and create a pull request with your changes. Make sure to update the tests as needed.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

For questions or suggestions, feel free to reach out at [email protected].