Skip to content
Code to download, process, and analyse the Online Encyclopedia of Integer Sequences
Branch: master
Clone or download
Latest commit 5f951e6 Apr 21, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
catalog_files Updated catalog files. Sep 20, 2015
docs Updating script names and graph. Sep 20, 2015
fixes Added script to generate the full sequence A137419. Sep 22, 2015
logfiles Only consolidate the database once each month. Dec 17, 2015
misc Added improved logging setup routine. Oct 4, 2015
.gitignore Updated git ignore list. Oct 4, 2015
README.md Updated README. Sep 20, 2015
catalog.py Fixed catalog code, starting to use logger, and fixed offset handling… Sep 20, 2015
charmap.py Upgrading parser. Sep 19, 2015
check_database.py Updated parser. Sep 27, 2015
compress_oeis.sh Added small script to compress the OEIS database. Sep 12, 2015
db2dir.py Automatic extraction of target directory name. Oct 5, 2015
exit_scope.py Added scope exitors. Sep 27, 2015
fetch_oeis_database.py duration_string() already includes units Apr 15, 2019
fetch_remote_oeis_entry.py bfiles appear to lack a charset; default to utf-8 Apr 15, 2019
find_sequences.py Now use concurrent.features and threads, instead of multiprocessing. Sep 20, 2015
fraction_based_linear_algebra.py Improved test cases. Oct 4, 2015
issues.txt Now use concurrent.features and threads, instead of multiprocessing. Sep 20, 2015
oeis_entry.py Added module-level comment. Oct 4, 2015
parse_oeis_database.py Fixed log message. Oct 4, 2015
pickle_to_json.py Adde routine to change pickle to JSON. Sep 7, 2015
setup_logging.py Renamed logging setup. Oct 4, 2015
show_database_time.py Only consolidate the database once each month. Dec 17, 2015
solve_linear_recurrence.py solve_linear_recurrence now stores and re-uses its results. Oct 4, 2015
timer.py I think you meant seconds, not minutes Apr 15, 2019
verify_catalog.py Fixed catalog code, starting to use logger, and fixed offset handling… Sep 20, 2015

README.md

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

You can’t perform that action at this time.