Git Product home page Git Product logo

nerdyversary's Introduction

Two Pi Pies

Nerdyversary

MIT license GitHub repo build badge docs badge tests badge

Small project about finding "nerdy anniversaries". An obvious example would be that after 3.1415... years one could celebrate the $\pi$-th anniversary. The code in this repo finds nice combinations of numbers like $\pi$, $e$, $\phi$ and so on and can construct fractions for the approximation.

Installation

From PyPI

Simply use

$ pip install nerdyversary

to install this package in your environment.

From Source

To install nerdyversary from source, follow these steps below:

  1. Clone the repository

    $ git clone https://github.com/rmnldwg/nerdyversary
    
  2. Create a Virtual Environment (optional, but recommended)

    $ python3 -m venv .venv
    

    You should do this with an installation of Python 3.10 or later. And don't forget to activate the environment with

    $ source .venv/bin/activate
    
  3. Use pip to install

    $ pip install -U pip setuptools setuptools-scm
    $ pip install .
    

Usage

Script

usage: nerdyversary [-h] [-v] [-d SPECIAL_DAY] [-s START] [-e END]
                    [--max-power MAX_POWER] [--factor-lim FACTOR_LIM]
                    [--format FORMAT]

Find beautiful nerdyversaries.

options:
  -h, --help            show this help message and exit
  -v, --version         Show the installed version and exit.
  -d SPECIAL_DAY, --special-day SPECIAL_DAY
                        Date of the special day in ISO format. (default: 2023-01-04)
  -s START, --start START
                        Date when to start with search in ISO format. (default:
                        2023-01-04)
  -e END, --end END     Date when to end the search in ISO format. (default:
                        2024-01-04)
  --max-power MAX_POWER
                        Largest exponent to consider for building the nerdyversaries.
                        (default: 5)
  --factor-lim FACTOR_LIM
                        Largest multiple of a symbol that is accepted. (default: 10)
  --format FORMAT       The output format that will be used by the `tabulate` package.
                        (default: simple)

The FORMAT argument must be one of the strings the tabulate package understands.

An example: The input

$ nerdyversary -d 2012-12-21 -s 2023-01-01 -e 2024-01-01 --format pipe --factor-lim 4 --max-power 3

will yield a markdown table that renders into the following:

Date Days Years Expression
6. Jan 2023 3668 10.04 $\frac{e^{3}}{2}$
24. Feb 2023 3717 10.18 $\frac{5 e^{3}}{\pi^{2}}$
12. Jun 2023 3825 10.47 $4 \phi^{2}$
19. Jun 2023 3832 10.49 $\frac{5 \pi^{3}}{2 e^{2}}$
25. Jul 2023 3868 10.59 $\frac{5 \phi^{3}}{2}$
5. Nov 2023 3971 10.87 $4 e$
12. Nov 2023 3978 10.89 $\frac{3 \pi^{2}}{e}$
14. Dec 2023 4010 10.98 $\frac{3 \pi^{3}}{2 \phi^{3}}$

The symbols here are

  • the golden ratio $\phi \approx 1.618\ldots$
  • the number $\pi \approx 3.1415\ldots$
  • Euler's number $e \approx 2.718\ldots$

When using this package as a library, arbitrary constants may be defined as symbols.

Library API

The API documentation is hosted here.

nerdyversary's People

Contributors

rmnldwg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.