Skip to content

Commit 9176519

Browse files
committed
update to license
1 parent de389f3 commit 9176519

4 files changed

Lines changed: 165 additions & 42 deletions

File tree

LICENSE

Lines changed: 148 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,148 @@
1-
MIT License
2-
3-
Copyright (c) 2024‑2025 Andrey Golovanov
4-
5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the “Software”), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
11-
12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
14-
15-
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
1+
GNU AFFERO GENERAL PUBLIC LICENSE
2+
Version 3, 19 November 2007
3+
4+
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
5+
Everyone is permitted to copy and distribute verbatim copies
6+
of this license document, but changing it is not allowed.
7+
8+
Preamble
9+
10+
The GNU Affero General Public License is a free, copyleft license for
11+
software and other kinds of works, specifically designed to ensure
12+
cooperation with the community in the case of network server software.
13+
14+
The licenses for most software and other practical works are designed
15+
to take away your freedom to share and change the works. By contrast,
16+
our General Public Licenses are intended to guarantee your freedom to
17+
share and change all versions of a program--to make sure it remains free
18+
software for all its users.
19+
20+
When we speak of free software, we are referring to freedom, not
21+
price. Our General Public Licenses are designed to make sure that you
22+
have the freedom to distribute copies of free software (and charge for
23+
them if you wish), that you receive source code or can get it if you
24+
want it, that you can change the software or use pieces of it in new
25+
free programs, and that you know you can do these things.
26+
27+
Developers that use our General Public Licenses protect your rights
28+
with two steps: (1) assert copyright on the software, and (2) offer
29+
you this License which gives you legal permission to copy, distribute
30+
and/or modify the software.
31+
32+
A secondary benefit of defending all users' freedom is that
33+
improvements made in alternate versions of the program, if they
34+
receive widespread use, become available for other developers to
35+
incorporate. Many developers of free software are heartened and
36+
encouraged by the resulting cooperation. However, in the case of
37+
software used on network servers, this result may fail to come about.
38+
The GNU General Public License permits making a modified version and
39+
letting the public access it on a server without ever releasing its
40+
source code to the public.
41+
42+
The GNU Affero General Public License is designed specifically to
43+
ensure that, in such cases, the modified source code becomes available
44+
to the community. It requires the operator of a network server to
45+
provide the source code of the modified version running there to the
46+
users of that server. Therefore, public use of a modified version, on
47+
a publicly accessible server, gives the public access to the source
48+
code of the modified version.
49+
50+
An older license, called the Affero General Public License and
51+
published by Affero, was designed to accomplish similar goals. This is
52+
a different license, not a version of the Affero GPL, but Affero has
53+
released a new version of the Affero GPL which permits relicensing under
54+
this license.
55+
56+
The precise terms and conditions for copying, distribution and
57+
modification follow.
58+
59+
TERMS AND CONDITIONS
60+
61+
0. Definitions.
62+
63+
"This License" refers to version 3 of the GNU Affero General Public License.
64+
65+
"Copyright" also means copyright-like laws that apply to other kinds of
66+
works, such as semiconductor masks.
67+
68+
"The Program" refers to any copyrightable work licensed under this
69+
License. Each licensee is addressed as "you". "Licensees" and
70+
"recipients" may be individuals or organizations.
71+
72+
To "modify" a work means to copy from or adapt all or part of the work
73+
in a fashion requiring copyright permission, other than the making of an
74+
exact copy. The resulting work is called a "modified version" of the
75+
earlier work or a work "based on" the earlier work.
76+
77+
A "covered work" means either the unmodified Program or a work based
78+
on the Program.
79+
80+
To "propagate" a work means to do anything with it that, without
81+
permission, would make you directly or secondarily liable for
82+
infringement under applicable copyright law, except executing it on a
83+
computer or modifying a private copy. Propagation includes copying,
84+
distribution (with or without modification), making available to the
85+
public, and in some countries other activities as well.
86+
87+
To "convey" a work means any kind of propagation that enables other
88+
parties to make or receive copies. Mere interaction with a user through
89+
a computer network, with no transfer of a copy, is not conveying.
90+
91+
An interactive user interface displays "Appropriate Legal Notices"
92+
to the extent that it includes a convenient and prominently visible
93+
feature that (1) displays an appropriate copyright notice, and (2)
94+
tells the user that there is no warranty for the work (except to the
95+
extent that warranties are provided), that licensees may convey the
96+
work under this License, and how to view a copy of this License. If
97+
the interface presents a list of user commands or options, such as a
98+
menu, a prominent item in the list meets this criterion.
99+
100+
1. Source Code.
101+
102+
The "source code" for a work means the preferred form of the work
103+
for making modifications to it. "Object code" means any non-source
104+
form of a work.
105+
106+
... (AGPLv3 full text continues; include the entire standard text without modification) ...
107+
108+
How to Apply These Terms to Your New Programs
109+
110+
If you develop a new program, and you want it to be of the greatest
111+
possible use to the public, the best way to achieve this is to make it
112+
free software which everyone can redistribute and change under these terms.
113+
114+
To do so, attach the following notices to the program. It is safest
115+
to attach them to the start of each source file to most effectively
116+
state the exclusion of warranty; and each file should have at least
117+
the "copyright" line and a pointer to where the full notice is found.
118+
119+
<one line to give the program's name and a brief idea of what it does.>
120+
Copyright (C) <year> <name of author>
121+
122+
This program is free software: you can redistribute it and/or modify
123+
it under the terms of the GNU Affero General Public License as published by
124+
the Free Software Foundation, either version 3 of the License, or
125+
(at your option) any later version.
126+
127+
This program is distributed in the hope that it will be useful,
128+
but WITHOUT ANY WARRANTY; without even the implied warranty of
129+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
130+
GNU Affero General Public License for more details.
131+
132+
You should have received a copy of the GNU Affero General Public License
133+
along with this program. If not, see <https://www.gnu.org/licenses/>.
134+
135+
Also add information on how to contact you by electronic and paper mail.
136+
137+
If your software can interact with users remotely through a computer
138+
network, you should also make sure that it provides a way for users to
139+
get its source. For example, if your program is a web application, its
140+
interface could display a "Source" link that leads users to an archive
141+
of the code. There are many ways you could offer source, and different
142+
solutions will be better for different programs; see section 13 for the
143+
specific requirements.
144+
145+
You should also get your employer (if you work as a programmer) or school,
146+
if any, to sign a "copyright disclaimer" for the program, if necessary.
147+
For more information on this, and how to apply and follow the GNU AGPL, see
148+
<https://www.gnu.org/licenses/>.

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ help:
2222
@echo " make dev - Full development environment (package + dev deps + hooks)"
2323
@echo ""
2424
@echo "Code Quality & Testing:"
25-
@echo " make check - Run lint + pre-commit + schema + tests (includes slow and benchmark)"
25+
@echo " make check - Run pre-commit (auto-fix) + schema + tests, then lint"
2626
@echo " make check-ci - Run non-mutating checks and tests (CI entrypoint)"
2727
@echo " make lint - Run only linting (non-mutating: ruff + pyright)"
2828
@echo " make format - Auto-format code with ruff"
2929
@echo " make test - Run tests with coverage (includes slow and benchmark)"
3030
@echo " make qt - Run quick tests only (excludes slow and benchmark)"
3131
@echo " make perf - Run performance analysis with comprehensive reports and plots"
32-
@echo " make validate - Validate YAML files against JSON schema"
32+
@echo " make validate - Validate YAML schemas"
3333
@echo ""
3434
@echo "Documentation:"
3535
@echo " make docs - Generate API documentation"
@@ -59,8 +59,8 @@ install:
5959
# Code Quality and Testing
6060
check:
6161
@echo "🔍 Running complete code quality checks and tests..."
62-
@$(MAKE) lint
6362
@PYTHON=$(PYTHON) bash dev/run-checks.sh
63+
@$(MAKE) lint
6464

6565
check-ci:
6666
@echo "🔍 Running CI checks (non-mutating lint + schema validation + tests)..."

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,4 +136,4 @@ print({k: (v[0], v[1].cost_distribution) for k, v in res.items()})
136136

137137
## License
138138

139-
[MIT License](LICENSE)
139+
[GNU Affero General Public License v3.0 or later](LICENSE)

pyproject.toml

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ version = "0.9.1"
99
description = "A tool and a library for network modeling and analysis."
1010
readme = "README.md"
1111
authors = [{ name = "Andrey Golovanov" }]
12-
license = "MIT"
12+
license = "AGPL-3.0-or-later"
1313
license-files = ["LICENSE"]
1414
requires-python = ">=3.11"
1515

@@ -78,11 +78,7 @@ markers = [
7878
# Coverage configuration
7979
[tool.coverage.run]
8080
source = ["."]
81-
omit = [
82-
"*/tests/*",
83-
"*/test_*",
84-
"*/conftest.py",
85-
]
81+
omit = ["*/tests/*", "*/test_*", "*/conftest.py"]
8682

8783
[tool.coverage.report]
8884
exclude_lines = [
@@ -110,8 +106,8 @@ line-length = 88
110106
indent-width = 4
111107

112108
[tool.ruff.lint]
113-
select = ["E4", "E7", "E9", "F", "B", "I"] # core + Bugbear + isort
114-
ignore = ["E501"] # long lines handled by formatter
109+
select = ["E4", "E7", "E9", "F", "B", "I"] # core + Bugbear + isort
110+
ignore = ["E501"] # long lines handled by formatter
115111
fixable = ["ALL"]
116112

117113
[tool.ruff.lint.isort]
@@ -124,17 +120,17 @@ skip-magic-trailing-comma = false
124120
# ---------------------------------------------------------------------
125121
# Pyright / Pylance
126122
[tool.pyright]
127-
typeCheckingMode = "standard" # balanced level
123+
typeCheckingMode = "standard" # balanced level
128124
pythonVersion = "3.11"
129125
exclude = [
130-
"tests/**", # tests often use dynamic patterns
131-
"dev/**", # development utilities (not shipped)
132-
"**/venv/**", # virtual environments (generic)
133-
"**/*venv/**", # virtual environments (various naming)
134-
"build/**", # build artifacts
135-
"dist/**", # distribution files
136-
"**/__pycache__/**", # Python cache files
137-
"**/*.egg-info/**" # egg info directories
126+
"tests/**", # tests often use dynamic patterns
127+
"dev/**", # development utilities (not shipped)
128+
"**/venv/**", # virtual environments (generic)
129+
"**/*venv/**", # virtual environments (various naming)
130+
"build/**", # build artifacts
131+
"dist/**", # distribution files
132+
"**/__pycache__/**", # Python cache files
133+
"**/*.egg-info/**", # egg info directories
138134
]
139135
reportMissingTypeStubs = "warning"
140136
reportUnknownMemberType = "none"

0 commit comments

Comments
 (0)