Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

magolib

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

magolib

A library to format and convert numbers in the Mago unit of measure

  • 0.0.1
  • PyPI
  • Socket score

Maintainers
1

MAGO-LIB

A Python library to format, parse, and convert numbers from meters to maghi.

What's this, though?

Meters (= boring 👎)

Since 2019, the metre has been defined as the length of the path travelled by light in vacuum during a time interval of 1/299792458 of a second, where the second is defined by a hyperfine transition frequency of caesium.

One second is the time that elapses during 9.192631770 x 10E9 cycles of the radiation produced by the transition between two levels of the cesium-133 atom.

What the hell is even that? How could you ever recreate a precise meter if you found yourself in a forest alone or shipwrecked on a desert island? Important questions. But the International System of Units doesn't care about you.

Maghi (= helpful! 👍)

How do you define a Mago? Simple enough! That's his height:

Niccolò Marcon, the reference measure of a Mago

Of course, you'll have already figured the advantages of such unit of measurement:

  • Simple and immediate definition
  • The size of a Niccolò is UNIVERSALLY known on Planet Earth
  • This Niccolò has always existed and forever will
  • Its length is unchanged since the dawn of time and is extremely stable (contrary to a standard meter) to:
    • Thermal variations
    • Mechanical fatigue
    • Aging and degradation
    • Chemical stress
    • Verbal abuse
    • Intense math classes (up to 8 hours of continued exposure)
    • Electromagnetic radiation
    • Ionizing radiation (under testing)
  • If you dip a meter in Nutella it'll be ruined, a Mago will smile and thank you
  • Conversion between meters and maghi is very straightforward
  • A handy Python library is available to help migrate the world from metric to magic
Conventions:
  • We denote a mago with the character: ℳ
  • One ℳ equals approximately 1.93 meters
  • All the standard multiples and submultiples apply:
    PrefixNameFactor
    ppico1e-12
    nnano1e-9
    µ, umicro1e-6
    mmilli1e-3
    ccenti1e-2
    ddeci1e-1
    1e0
    dadeca1e1
    hetto1e2
    k, Kkilo1e3
    Mmega1e6
    Ggiga1e9
    Ttera1e12

Installation

Ensure you have Python and Pip installed in your system and run:

pip install magolib

Alternatively, you can clone this repository, cd into it, and run pip install .

Usage

First off, import magolib:

import magolib

Next, you can perform all these operations:

Convert meters to maghi
>>> magolib.meters_to_maghi(1.0)
0.5181347150259068
>>> magolib.meters_to_maghi(-0.58)
-0.3005181347150259
>>> magolib.meters_to_maghi(2.3e4)
11917.098445595855
Convert maghi to meters
>>> magolib.maghi_to_meters(1.0)
1.93
>>> magolib.maghi_to_meters(-42.5)
-82.02499999999999
>>> magolib.maghi_to_meters(1.9e-2)
0.03667
Format maghi as strings
>>> magolib.format_maghi(1.0)
'1.00 ℳ  (maghi)'
>>> magolib.format_maghi(3.4e-10)
'340.00 pℳ  (picomaghi)'
>>> magolib.format_maghi(23e6)
'23.00 Mℳ  (megamaghi)'
Convert maghi subunits
>>> magolib.convert_maghi(1.0, '', 'k')
0.001
>>> magolib.convert_maghi(5, 'h', '')
500.0
>>> magolib.convert_maghi(7.2, 'm', 'u')
7200.000000000001
Parse meters from string
>>> magolib.parse_meters('-2e3 km')
-2000000.0
>>> magolib.parse_meters('1 m')
1.0
>>> magolib.parse_meters('.3 dm')
0.03
>>> magolib.parse_meters('-2e3 km')
-2000000.0
Parse maghi from string
>>> magolib.parse_maghi('1ℳ')
1.0
>>> magolib.parse_maghi('1M')
1.0
>>> magolib.parse_maghi('3 mM')
0.003

Note: here for simplicity you can use an uppercase 'M' in place of the symbol 'ℳ'

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc