Skip to content

Code to download, process, and analyse the Online Encyclopedia of Integer Sequences

Notifications You must be signed in to change notification settings

sidneycadot/oeis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Code to download, process, and analyse the Online Encyclopedia of Integer Sequences

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages