Skip to content

Commit

Permalink
Release 0.0.2 (#27)
Browse files Browse the repository at this point in the history
  • Loading branch information
VascoSch92 authored Jan 7, 2024
2 parents ba1687c + 76580cb commit 59c7227
Show file tree
Hide file tree
Showing 15 changed files with 526 additions and 15 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: automatic-release

on:
pull_request:
types:
- closed
branches:
- main

jobs:
upload-release-on-pypi:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Upload release
run: |
python setup.py sdist
twine upload dist/* -u __token__ -p {{ secrets.PYPI_PASSWORD }}
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,33 @@ The version is represented by three digits: a.b.c.
## Unreleased

---
## [0.0.2] - 2024-01-07

ENHANCEMENT:
- sequentium.github.workflows.release.yml: workflow for automatic upload on pypi
- sequentium.sequence.sequences.integer.periodic_generalised.py: added class for representing constant sequences
- sequentium.sequence.sequences.integer.recursive.py: added sequence A001608
- sequentium.sequence.sequences.integer.explicit.py: added sequence A000566 (heptagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A000567 (octagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A001106 (nonagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A001107 (decagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051682 (hendecagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051624 (dodecagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051865 (tridecagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051866 (tetradecagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051867 (pentadecagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051868 (hexadecagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051869 (heptadecagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051870 (octadecagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051871 (enneadecagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051872 (icosagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051873 (icosihenagonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051874 (Icosidigonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051875 (icositrigonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A051876 (icositetragonal numbers)
- sequentium.sequence.sequences.integer.explicit.py: added sequence A167149 (myriagonal numbers)


## [0.0.1] - 2024-01-02

ENHANCEMENT:
Expand Down
37 changes: 29 additions & 8 deletions sequence/SEQUENCES_LIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,43 @@ List of implemented integer sequences.
| A000290 | The square numbers | `A000290`, `SquareNumbers` | https://oeis.org/A000290 |
| A000326 | The pentagonal numbers | `A000326`, `PentagonalNumbers` | https://oeis.org/A000326 |
| A000384 | The hexagonal numbers | `A000384`, `HexagonalNumbers` | https://oeis.org/A000384 |
| A000566 | The heptagonal numbers | `A000566`, `HeptagonalNumbers` | https://oeis.org/A000566 |
| A000567 | The octagonal numbers | `A000567`, `OctagonalNumbers` | https://oeis.org/A000567 |
| A000931 | The Padovan numbers | `A000931`, `PadovanNumbers`, `PadovanSequence` | https://oeis.org/A000931 |
| A001045 | The Jacobsthal numbers | `A001045`, `JacobsthalNumbers`, `JacobsthalSequence` | https://oeis.org/A001045 |
| A001106 | The nonagonal numbers | `A001106`, `NonagonalNumbers` | https://oeis.org/A001106 |
| A001107 | The decagonal numbers | `A001107`, `DecagonalNumbers` | https://oeis.org/A001107 |
| A001228 | Orders of sporadic simple groups | `A001228` | https://oeis.org/A001228 |
| A001591 | The Pentanacci numbers | `A001591`, `PentanacciNumbers` | https://oeis.org/A001591 |
| A001592 | The Hexanacci numbers | `A001592`, `HexanacciNumbers` | https://oeis.org/A001592 |
| A001608 | Perrin numbers | `A001608`, `PerrinNumbers` | https://oeis.org/A001608 |
| A002203 | Companion Pell numbers | `A002203`, `CompanionPellNumbers`, `PellLucasNumbers` | https://oeis.org/A002203 |
| A002808 | The composite numbers | `A002808`, `CompositeNumbers`, `PositiveCompositeNumbers` | https://oeis.org/A002808 |
| A003173 | The Heegner numbers | `A003173`, `HeegnerNumbers` | https://oeis.org/A003173 |
| A003215 | The hex numbers | `A003215`, `HexNumbers`, `CenteredHexagonalNumbers` | https://oeis.org/A003215 |
| A005408 | The odd numbers | `A005408`, `OddNumbers` | https://oeis.org/A005408 |
| A014551 | Jacobsthal-Lucas numbers | `A014551`, `JachobsthalLucasNumbers` | https://oeis.org/A014551 |
| A033999 | Sequence of powers of -1 | `A033999` | https://oeis.org/A033999 |
| A051624 | The dodecagonal numbers | `A051624`, `DodecagonalNumbers` | https://oeis.org/A051624 |
| A051682 | The hendecagonal numbers | `A051682`, `HendecagonalNumbers` | https://oeis.org/A051682 |
| A051865 | The tridecagonal numbers | `A051865`, `TridecagonalNumbers` | https://oeis.org/A051865 |
| A051866 | The tetradecagonal numbers | `A051866`, `TetradecagonalNumbers` | https://oeis.org/A051866 |
| A051867 | The pentadecagonal numbers | `A051867`, `PentadecagonalNumbers` | https://oeis.org/A051867 |
| A051868 | The hexadecagonal numbers | `A051868`, `HexadecagonalNumbers` | https://oeis.org/A051868 |
| A051869 | The heptadecagonal numbers | `A051869`, `HeptadecagonalNumbers` | https://oeis.org/A051869 |
| A051870 | The octadecagonal numbers | `A051870`, `OctadecagonalNumbers` | https://oeis.org/A051870 |
| A051871 | The enneadecagonal numbers | `A051871`, `EnneadecagonalNumbers` | https://oeis.org/A051871 |
| A051872 | The icosagonal numbers | `A051872`, `IcosagonalNumbers` | https://oeis.org/A051872 |
| A051873 | The icosihenagonal numbers | `A051873`, `IcosihenagonalNumbers` | https://oeis.org/A051873 |
| A051874 | The icosidigonal numbers | `A051874`, `IcosidigonalNumbers` | https://oeis.org/A051874 |
| A051875 | The icositrigonal numbers | `A051875`, `IcositrigonalNumbers` | https://oeis.org/A051875 |
| A051876 | The icositetragonal numbers | `A051876`, `IcositetragonalNumbers` | https://oeis.org/A051876 |
| A079262 | The Octanacci numbers | `A079262`, `OctanacciNumbers` | https://oeis.org/A079262 |
| A087204 | Sequence A087204 | `A087204` | https://oeis.org/A087204 |
| A104144 | The Enneanacci numbers | `A104144`, `EnneanacciNumebrs` | https://oeis.org/A104144 |
| A122189 | The Heptanacci numbers | `A122189`, `HeptanacciNumbers` | https://oeis.org/A122189 |
| A128834 | Sequence A128834 | `A128834` | https://oeis.org/A128834 |
| A167149 | The myriagonal numbers | `A167149`, `MyriagonalNumbers` | https://oeis.org/A167149 |
| A214733 | Sequence A214733 | `A214733` | https://oeis.org/A214733 |
| - | The Collatz sequence | `CollatzSequence` | https://en.wikipedia.org/wiki/Collatz_conjecture |

Expand All @@ -51,13 +71,14 @@ List of implemented integer sequences.

List of implemented generalised integer sequences.

| Sequence Name | Sequence class name(s) | Reference |
|---------------------------------|-----------------------------|--------------------------------------------------------------------|
| The generalised Nexus numbers | `GeneralisedNexusNumbers` | https://mathworld.wolfram.com/NexusNumber.html |
| High order Fibonacci numbers | `HighOrderFibonacciNumbers` | https://en.wikipedia.org/wiki/Generalizations_of_Fibonacci_numbers |
| The Lucas sequence U_n | `LucasSequenceU` | https://en.wikipedia.org/wiki/Lucas_sequence |
| The Lucas sequence V_n | `LucasSequenceV` | https://en.wikipedia.org/wiki/Lucas_sequence |
| The primes of a given sequence | `PrimesOfSequence` | - |
| The polygonal numbers | `PolygonalNumbers` | https://en.m.wikipedia.org/wiki/Polygonal_number |
| Sequence Name | Sequence class name(s) | Reference |
|--------------------------------|-----------------------------|--------------------------------------------------------------------|
| The constant sequence | `ConstantSequence` | - |
| The generalised Nexus numbers | `GeneralisedNexusNumbers` | https://mathworld.wolfram.com/NexusNumber.html |
| High order Fibonacci numbers | `HighOrderFibonacciNumbers` | https://en.wikipedia.org/wiki/Generalizations_of_Fibonacci_numbers |
| The Lucas sequence U_n | `LucasSequenceU` | https://en.wikipedia.org/wiki/Lucas_sequence |
| The Lucas sequence V_n | `LucasSequenceV` | https://en.wikipedia.org/wiki/Lucas_sequence |
| The primes of a given sequence | `PrimesOfSequence` | - |
| The polygonal numbers | `PolygonalNumbers` | https://en.m.wikipedia.org/wiki/Polygonal_number |


1 change: 1 addition & 0 deletions sequence/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from sequence.sequences.integer.explicit import *
from sequence.sequences.integer.finite import *
from sequence.sequences.integer.periodic import *
from sequence.sequences.integer.periodic_generalised import *
from sequence.sequences.integer.property_defined import *
from sequence.sequences.integer.recursive import *

Expand Down
2 changes: 1 addition & 1 deletion sequence/__version__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '0.0.1'
__version__ = '0.0.2'
211 changes: 210 additions & 1 deletion sequence/sequences/integer/explicit.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from sequence.core.infinite_type import Explicit
from sequence.core.mixin import MonotonicIncreasingMixin
from sequence.sequences.integer.explicit_generalised_sequences import GeneralisedNexusNumbers, PolygonalNumbers
from sequence.sequences.integer.explicit_generalised import GeneralisedNexusNumbers, PolygonalNumbers


class A000027(Explicit):
Expand Down Expand Up @@ -67,6 +67,28 @@ def __init__(self) -> None:
HexagonalNumbers = A000384


class A000566(PolygonalNumbers):
"""Heptagonal numbers (https://oeis.org/A000566)"""
sequence_name = 'heptagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=7)


HeptagonalNumbers = A000566


class A000567(PolygonalNumbers):
"""Octagonal numbers (https://oeis.org/A000567)"""
sequence_name = 'octagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=8)


OctagonalNumbers = A000567


class A001045(MonotonicIncreasingMixin, Explicit):
"""Jacobsthal numbers (https://oeis.org/A001045)."""
sequence_name = 'Jacobsthal numbers'
Expand All @@ -79,6 +101,28 @@ def formula(self, index: int) -> int:
JacobsthalSequence = A001045


class A001106(PolygonalNumbers):
"""Nonagonal numbers (https://oeis.org/A001106)"""
sequence_name = 'nonagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=9)


NonagonalNumbers = A001106


class A001107(PolygonalNumbers):
"""Decagonal numbers (https://oeis.org/A001107)"""
sequence_name = 'decagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=10)


DecagonalNumbers = A001107


class A003215(GeneralisedNexusNumbers):
"""Hex (or centered hexagonal) numbers (https://oeis.org/A003215)."""
sequence_name = 'hex numbers'
Expand Down Expand Up @@ -136,3 +180,168 @@ def __contains__(self, item: Any) -> bool:

def formula(self, index: int) -> int:
return (-1)**index


class A051624(PolygonalNumbers):
"""Dodecagonal numbers https://oeis.org/A051624)."""
sequence_name = 'dodecagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=12)


DodecagonalNumbers = A051624


class A051682(PolygonalNumbers):
"""Hendecagonal numbers (https://oeis.org/A051682)."""
sequence_name = 'hendecagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=11)


HendecagonalNumbers = A051682


class A051865(PolygonalNumbers):
"""Tridecagonal numbers (https://oeis.org/A051865)."""
sequence_name = 'tridecagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=13)


TridecagonalNumbers = A051865


class A051866(PolygonalNumbers):
"""Tetradecagonal numbers (https://oeis.org/A051866)."""
sequence_name = 'tetradecagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=14)


TetradecagonalNumbers = A051866


class A051867(PolygonalNumbers):
"""Pentadecagonal numbers (https://oeis.org/A051867)."""
sequence_name = 'pentadecagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=15)


PentadecagonalNumbers = A051867


class A051868(PolygonalNumbers):
"""Hexadecagonal numbers (https://oeis.org/A051868)."""
sequence_name = 'hexadecagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=16)


HexadecagonalNumbers = A051868


class A051869(PolygonalNumbers):
"""Heptadecagonal numbers (https://oeis.org/A051869)."""
sequence_name = 'heptadecagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=17)


HeptadecagonalNumbers = A051869


class A051870(PolygonalNumbers):
"""Octadecagonal numbers (https://oeis.org/A051870)."""
sequence_name = 'octadecagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=18)


OctadecagonalNumbers = A051870


class A051871(PolygonalNumbers):
"""Enneadecagonal numbers (https://oeis.org/A051871)."""
sequence_name = 'enneadecagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=19)


EnneadecagonalNumbers = A051871


class A051872(PolygonalNumbers):
"""Icosagonal numbers (https://oeis.org/A051872)."""
sequence_name = 'icosagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=20)


IcosagonalNumbers = A051872


class A051873(PolygonalNumbers):
"""Icosihenagonal numbers (https://oeis.org/A051873)."""
sequence_name = 'icosihenagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=21)


IcosihenagonalNumbers = A051873


class A051874(PolygonalNumbers):
"""Icosidigonal numbers (https://oeis.org/A051874)."""
sequence_name = 'icosidigonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=22)


IcosidigonalNumbers = A051874


class A051875(PolygonalNumbers):
"""Icositrigonal numbers (https://oeis.org/A051875)."""
sequence_name = 'icositrigonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=23)


IcositrigonalNumbers = A051875


class A051876(PolygonalNumbers):
"""Icositetragonal numbers (https://oeis.org/A051876)."""
sequence_name = 'icositetragonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=24)


IcositetragonalNumbers = A051876


class A167149(PolygonalNumbers):
"""Myriagonal numbers (https://oeis.org/A167149)."""
sequence_name = 'myriagonal numbers'

def __init__(self) -> None:
super().__init__(number_of_sides=10_000)


MyriagonalNumbers = A167149
16 changes: 16 additions & 0 deletions sequence/sequences/integer/periodic_generalised.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from sequence.core.finite_type import Periodic
from sequence.core.utils.validation import validate_positive_integer


class ConstantSequence(Periodic):
"""
The class represent a constant sequence of a given value
Attributes:
value (int): the values that the constant sequence is taking
"""
sequence_name = 'value sequence'

def __init__(self, value: int) -> None:
super().__init__(_period=1)
self.sequence = [validate_positive_integer(integer=value)]
2 changes: 1 addition & 1 deletion sequence/sequences/integer/property_defined.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from sequence.core.infinite_type import PropertyDefined
from sequence.core.utils.functions import is_prime
from sequence.sequences.integer.explicit import A000027
from sequence.sequences.integer.property_defined_generalised_sequences import PrimesOfSequence
from sequence.sequences.integer.property_defined_generalised import PrimesOfSequence


class A000040(PrimesOfSequence):
Expand Down
Loading

0 comments on commit 59c7227

Please sign in to comment.