Skip to content

Commit 0add2ec

Browse files
authored
Merge pull request #45 from avikpln/fix-missing-architecture
Update architecture diagram and conventions
2 parents de45304 + 6339de9 commit 0add2ec

3 files changed

Lines changed: 11 additions & 17 deletions

File tree

‎ARCHITECTURE.md‎

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,25 @@ and the relationships between its classes.
88
```mermaid
99
classDiagram
1010
class Sequence~T~ {
11+
%% Attributes
1112
+finite
1213
+first_index
1314
+last_index
1415
+size
16+
17+
%% Methods
1518
+combine(other, op)
1619
+head(size)
1720
+map(op)
1821
+shift_by(offset)
1922
+shift_to(where)
23+
+subiter(start, stop, step)
2024
+subsequence(subrule, size)
2125
+tail(size)
22-
+constant(value, size, first_index)$
23-
+from_iterable(iterable, first_index)$
24-
#_rule
2526
}
2627
2728
class NumericSequence {
29+
%% Methods
2830
+__add__(other)
2931
+__radd__(other)
3032
+__sub__(other)
@@ -42,19 +44,10 @@ classDiagram
4244
+__neg__()
4345
+__abs__()
4446
+map(op)
45-
+euler()$
46-
+geometric(first_term, common_ratio, size, first_index)$
47-
+naturals(size, first_index)$
48-
+progression(first_term, common_difference, size, first_index)$
4947
}
5048
5149
Sequence <|-- NumericSequence
5250
53-
class Recurrence {
54-
+basis
55-
+order
56-
}
57-
5851
Sequence <|-- Recurrence
5952
6053
NumericSequence <|-- NumericRecurrence
@@ -65,8 +58,6 @@ classDiagram
6558

6659
## Notes
6760

68-
- `$` is used in this diagram to denote a static method. The static
69-
methods shown here are factory methods.
7061
- `Sequence` is the base abstraction for sequences in the package.
7162
- `NumericSequence` inherits from `Sequence` and implements arithmetic
7263
operators through Python's special methods.

‎STYLE.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,3 +250,9 @@ All checks should pass before committing.
250250
This same sequence is automated by the project's CI workflow, which
251251
uses the empty-tree hash to check every file in the repository rather
252252
than just staged changes.
253+
254+
## Architecture Diagrams
255+
256+
- Specify only public instance attributes and methods;
257+
- Order members alphabetically unless grouping them has a meaningful
258+
structural or conceptual purpose.

‎TODO.md‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,5 @@
8383

8484
- Should `BinarySequence`/`RandomSequence` abstractions be added?
8585

86-
- Decide which protected members and nested classes should be
87-
represented in `ARCHITECTURE.md`.
88-
8986
- Should `{rₙ}` be used to denote `Recurrence` and `NumericRecurrence`
9087
instead of `{aₙ}`?

0 commit comments

Comments
 (0)