Git Product home page Git Product logo

oeis's Introduction

OEIS Tools

This repository contains scripts to download, process, and analyze data from the Online Encyclopedia of Integer Sequences (OEIS), as hosted on http://www.oeis.org.

Overview

Our tools handle OEIS data from three sources:

  1. remote: the OEIS database residing on the oeis.org server. The remote database can be accessed via HTTP or HTTPS requests.
  2. local sqlite3: a replica of the remote database as a local SQLite3 database file.
  3. local pickle: the OEIS database a a local pickle-format file, used for local analysis. The "pickle" format is Python-specific.

The local sqlite3 database is obtained from the remote database by an automatic web-crawler called 'fetch_oeis_database.py'. It contains the sequence metadata in the internal format as it is used on the remote side, as well as so called 'b-file' data that contain sequence data a(n) up to high values of n.

The local pickle format database is obtained from the local_sqlite3 database by parsing the data and turning it into OeisEntry instances. The pickled list of all OeisEntry instances can be read in its entirety within a few seconds.

Apart from these sources that describe the OEIS data, we also use the "catalog", which is a Python module that contains implementations of sequence generating functions.

Dependencies

  • All code is written in Python 3.
  • Some code depends on the 'numpy' library:
    • show_database_time.py
    • solve_linear_sequence.py
  • Some code depends on the 'matplotlib' library:
    • show_database_time.py

Description of files

Non-Python files:

filename description
README.md Text file (markdown format) description of the project.
catalog_files/*.json Catalog files, describing parametrized sequence generating functions.

Python scripts files:

filename description
fetch_oeis_database.py Fetch and refresh data from the remote OEIS database to a local sqlite3 database.
show_database_time.py Visualize time stamps in a given local sqlite3 OEIS database.
parse_oeis_database.py Parse a local sqlite3 database and produce a local pickle database.
find_sequences.py Probe a local pickle database for a given sequence (work in progress).
pickle_to_json.py Read a local pickle database and write a JSON version.
solve_linear_sequence.py Find linear sequences in a local 'pickle' database.
check_database.py Perform a number of checks on the data in a local pickle database.
verify_oeis_catalog.py Verify the catalog.

Python modules:

filename description
fraction_based_linear_algebra.py Perform matrix inversion without loss of precision using the Fraction type.
charmap.py Defines lists of acceptable characters for the OEIS directives.
OeisEntry.py Defines a simple class that contains (most of) the data of a single OEIS sequence.
timer.py Simplifies timing lengthy operations using a context manager.
fetch_remote_oeis_entry.py Fetches a single sequence's data from the OEIS website (www.oeis.org).
catalog.py Access the local catalog.

How it all fits together

Overview of OEIS tools

oeis's People

Contributors

jesseweinstein avatar sidneycadot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

oeis's Issues

Can I get a recent snapshot of the database?

Very glad to see this project :)! However, OEIS limits how quickly I can pull data from their website, so I expect it will take multiple days to download the database. Would it be possible to get a recent copy of the database from you? Maybe you could host a recent snapshot somewhere. Let me know if this is a possibility.

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.