PyFunceble.cli package¶
Subpackages¶
- PyFunceble.cli.continuous_integration package
- Submodules
- PyFunceble.cli.continuous_integration.base module
- PyFunceble.cli.continuous_integration.exceptions module
- PyFunceble.cli.continuous_integration.github_actions module
- PyFunceble.cli.continuous_integration.gitlab_ci module
- PyFunceble.cli.continuous_integration.jenkins module
- PyFunceble.cli.continuous_integration.travis_ci module
- PyFunceble.cli.continuous_integration.utils module
- Module contents
- PyFunceble.cli.entry_points package
- PyFunceble.cli.filesystem package
- Subpackages
- Submodules
- PyFunceble.cli.filesystem.cleanup module
- PyFunceble.cli.filesystem.counter module
- PyFunceble.cli.filesystem.dir_base module
- PyFunceble.cli.filesystem.json_base module
- PyFunceble.cli.filesystem.registrar_counter module
- PyFunceble.cli.filesystem.status_file module
- Module contents
- PyFunceble.cli.migrators package
- Subpackages
- Submodules
- PyFunceble.cli.migrators.alembic module
- PyFunceble.cli.migrators.base module
- PyFunceble.cli.migrators.db_base module
- Module contents
- PyFunceble.cli.processes package
- Subpackages
- PyFunceble.cli.processes.workers package
- Submodules
- PyFunceble.cli.processes.workers.base module
- PyFunceble.cli.processes.workers.chancy_producer module
- PyFunceble.cli.processes.workers.chancy_tester module
- PyFunceble.cli.processes.workers.dir_files_sorter module
- PyFunceble.cli.processes.workers.file_sorter module
- PyFunceble.cli.processes.workers.file_sorter_base module
- PyFunceble.cli.processes.workers.migrator module
- PyFunceble.cli.processes.workers.miner module
- PyFunceble.cli.processes.workers.producer module
- PyFunceble.cli.processes.workers.tester module
- Module contents
- PyFunceble.cli.processes.workers package
- Submodules
- PyFunceble.cli.processes.base module
- PyFunceble.cli.processes.chancy_producer module
- PyFunceble.cli.processes.chancy_tester module
- PyFunceble.cli.processes.dir_files_sorter module
- PyFunceble.cli.processes.file_sorter module
- PyFunceble.cli.processes.migrator module
- PyFunceble.cli.processes.miner module
- PyFunceble.cli.processes.producer module
- PyFunceble.cli.processes.tester module
- Module contents
- Subpackages
- PyFunceble.cli.scripts package
- PyFunceble.cli.system package
- PyFunceble.cli.utils package
Submodules¶
PyFunceble.cli.credential_loader module¶
The tool to check the availability or syntax of domain, IP or URL.
██████╗ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗ ██████╗███████╗██████╗ ██╗ ███████╗
██╔══██╗╚██╗ ██╔╝██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝██╔══██╗██║ ██╔════╝
██████╔╝ ╚████╔╝ █████╗ ██║ ██║██╔██╗ ██║██║ █████╗ ██████╔╝██║ █████╗
██╔═══╝ ╚██╔╝ ██╔══╝ ██║ ██║██║╚██╗██║██║ ██╔══╝ ██╔══██╗██║ ██╔══╝
██║ ██║ ██║ ╚██████╔╝██║ ╚████║╚██████╗███████╗██████╔╝███████╗███████╗
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ ╚══════╝╚══════╝
Provides our credential loader.
- Author:
- Nissar Chababy, @funilrys, contactTATAfunilrysTODTODcom
- Special thanks:
- https://pyfunceble.github.io/#/special-thanks
- Contributors:
- https://pyfunceble.github.io/#/contributors
- Project link:
- https://github.com/funilrys/PyFunceble
- Project documentation:
- https://pyfunceble.readthedocs.io/en/latest/
- Project homepage:
- https://pyfunceble.github.io/
License:
Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-
class
PyFunceble.cli.credential_loader.
CredentialLoader
(db_type: Optional[str] = None)[source]¶ Bases:
object
Provides our creadential loader.
The idea is to have an interface which provides the credential to use but at the same time load and initiate the credential interface after loading it from the user input or the environment variables.
Parameters: db_type – The database type to load the credential for. -
DB_TYPE2OBJ
= {'csv': None, 'mariadb': <class 'PyFunceble.database.credential.mariadb.MariaDBCredential'>, 'mysql': <class 'PyFunceble.database.credential.mysql.MySQLCredential'>, 'postgresql': <class 'PyFunceble.database.credential.postgresql.PostgreSQLCredential'>}¶
-
ask_for_info
(var_name: str, default: Any) → str[source]¶ Asks the credential to the end-user.
Parameters: - var_name – The name of the part to ask for example
host
orpassword
. - default – The default value to return if the user don’t give us anything.
- var_name – The name of the part to ask for example
Provides the authorization to run.
-
credential
= None¶ The credential (itself).
-
db_type
¶ Provides the current state of the
_db_type
attribute.
-
ensure_db_type_is_given
()[source]¶ Ensure that the db type is given before launching the decorated method.
Raises: TypeError – When the db type is not given.
Executes the decorated method only if we are authorized to process. Otherwise, apply the given
default
.
-
set_credential_var
(var_name: str, value: Any) → PyFunceble.cli.credential_loader.CredentialLoader[source]¶ Sets the given
var_name
of the credential object with the givenvalue
.Parameters: - var_name – The name of the variable to set.
- value – The value of to set.
-
set_db_type
(value: str) → PyFunceble.cli.credential_loader.CredentialLoader[source]¶ Sets the database type to work with.
Parameters: value – The value to set.
-
PyFunceble.cli.execution_time module¶
The tool to check the availability or syntax of domain, IP or URL.
██████╗ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗ ██████╗███████╗██████╗ ██╗ ███████╗
██╔══██╗╚██╗ ██╔╝██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝██╔══██╗██║ ██╔════╝
██████╔╝ ╚████╔╝ █████╗ ██║ ██║██╔██╗ ██║██║ █████╗ ██████╔╝██║ █████╗
██╔═══╝ ╚██╔╝ ██╔══╝ ██║ ██║██║╚██╗██║██║ ██╔══╝ ██╔══██╗██║ ██╔══╝
██║ ██║ ██║ ╚██████╔╝██║ ╚████║╚██████╗███████╗██████╔╝███████╗███████╗
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ ╚══════╝╚══════╝
Provides the interface for the generation of the execution time.
- Author:
- Nissar Chababy, @funilrys, contactTATAfunilrysTODTODcom
- Special thanks:
- https://pyfunceble.github.io/#/special-thanks
- Contributors:
- https://pyfunceble.github.io/#/contributors
- Project link:
- https://github.com/funilrys/PyFunceble
- Project documentation:
- https://pyfunceble.readthedocs.io/en/latest/
- Project homepage:
- https://pyfunceble.github.io/
License:
Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-
class
PyFunceble.cli.execution_time.
ExecutionTime
(authorized: Optional[bool] = None)[source]¶ Bases:
object
Provides the interface for the execution time.
Parameters: authorized – The authorization to run. -
STD_AUTHORIZED
= False¶
Provides the currently state of the
_authorized
attribute.
-
end_time
= None¶
Executes the decorated method only if we are authorized to process. Otherwise, apply the given
default
.
Try to guess and set the authorization from the configuration file.
Sets the value of the
authorized
attribute.Parameters: value – The value to set.
-
set_end_time
() → PyFunceble.cli.execution_time.ExecutionTime[source]¶ Sets the starting time to now.
-
set_start_time
() → PyFunceble.cli.execution_time.ExecutionTime[source]¶ Sets the starting time to now.
-
static
split_difference
(start: datetime.datetime, end: datetime.datetime) → dict[source]¶ Calculates the difference between the two datetime object.
Parameters: - start – The starting time.
- end – The ending time.
Raises: TypeError – When the given
start
orend
is not adatetime.datetime
.
-
start_time
= None¶
-
PyFunceble.cli.facility module¶
The tool to check the availability or syntax of domain, IP or URL.
██████╗ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗ ██████╗███████╗██████╗ ██╗ ███████╗
██╔══██╗╚██╗ ██╔╝██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝██╔══██╗██║ ██╔════╝
██████╔╝ ╚████╔╝ █████╗ ██║ ██║██╔██╗ ██║██║ █████╗ ██████╔╝██║ █████╗
██╔═══╝ ╚██╔╝ ██╔══╝ ██║ ██║██║╚██╗██║██║ ██╔══╝ ██╔══██╗██║ ██╔══╝
██║ ██║ ██║ ╚██████╔╝██║ ╚████║╚██████╗███████╗██████╔╝███████╗███████╗
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ ╚══════╝╚══════╝
Provides some loader that we may need later.
- Author:
- Nissar Chababy, @funilrys, contactTATAfunilrysTODTODcom
- Special thanks:
- https://pyfunceble.github.io/#/special-thanks
- Contributors:
- https://pyfunceble.github.io/#/contributors
- Project link:
- https://github.com/funilrys/PyFunceble
- Project documentation:
- https://pyfunceble.readthedocs.io/en/latest/
- Project homepage:
- https://pyfunceble.github.io/
License:
Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
PyFunceble.cli.factory module¶
The tool to check the availability or syntax of domain, IP or URL.
██████╗ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗ ██████╗███████╗██████╗ ██╗ ███████╗
██╔══██╗╚██╗ ██╔╝██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝██╔══██╗██║ ██╔════╝
██████╔╝ ╚████╔╝ █████╗ ██║ ██║██╔██╗ ██║██║ █████╗ ██████╔╝██║ █████╗
██╔═══╝ ╚██╔╝ ██╔══╝ ██║ ██║██║╚██╗██║██║ ██╔══╝ ██╔══██╗██║ ██╔══╝
██║ ██║ ██║ ╚██████╔╝██║ ╚████║╚██████╗███████╗██████╔╝███████╗███████╗
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ ╚══════╝╚══════╝
Provides everything which doesn’t get through the door of the facility.
- Author:
- Nissar Chababy, @funilrys, contactTATAfunilrysTODTODcom
- Special thanks:
- https://pyfunceble.github.io/#/special-thanks
- Contributors:
- https://pyfunceble.github.io/#/contributors
- Project link:
- https://github.com/funilrys/PyFunceble
- Project documentation:
- https://pyfunceble.readthedocs.io/en/latest/
- Project homepage:
- https://pyfunceble.github.io/
License:
Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
PyFunceble.cli.file_preloader module¶
The tool to check the availability or syntax of domain, IP or URL.
██████╗ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗ ██████╗███████╗██████╗ ██╗ ███████╗
██╔══██╗╚██╗ ██╔╝██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝██╔══██╗██║ ██╔════╝
██████╔╝ ╚████╔╝ █████╗ ██║ ██║██╔██╗ ██║██║ █████╗ ██████╔╝██║ █████╗
██╔═══╝ ╚██╔╝ ██╔══╝ ██║ ██║██║╚██╗██║██║ ██╔══╝ ██╔══██╗██║ ██╔══╝
██║ ██║ ██║ ╚██████╔╝██║ ╚████║╚██████╗███████╗██████╔╝███████╗███████╗
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ ╚══════╝╚══════╝
Provides the interface for the preloading of a given file.
- Author:
- Nissar Chababy, @funilrys, contactTATAfunilrysTODTODcom
- Special thanks:
- https://pyfunceble.github.io/#/special-thanks
- Contributors:
- https://pyfunceble.github.io/#/contributors
- Project link:
- https://github.com/funilrys/PyFunceble
- Project documentation:
- https://pyfunceble.readthedocs.io/en/latest/
- Project homepage:
- https://pyfunceble.github.io/
License:
Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-
class
PyFunceble.cli.file_preloader.
FilePreloader
(*, authorized: Optional[bool] = None, protocol: Optional[dict] = None, continuous_integration: Optional[PyFunceble.cli.continuous_integration.base.ContinuousIntegrationBase] = None, checker_type: Optional[str] = None, adblock_inputline2subject: Optional[PyFunceble.converter.adblock_input_line2subject.AdblockInputLine2Subject] = None, wildcard2subject: Optional[PyFunceble.converter.wildcard2subject.Wildcard2Subject] = None, rpz_policy2subject: Optional[PyFunceble.converter.rpz_policy2subject.RPZPolicy2Subject] = None, rpz_inputline2subject: Optional[PyFunceble.converter.rpz_input_line2subject.RPZInputLine2Subject] = None, inputline2subject: Optional[PyFunceble.converter.input_line2subject.InputLine2Subject] = None, subject2complements: Optional[PyFunceble.converter.subject2complements.Subject2Complements] = None, url2netloc: Optional[PyFunceble.converter.url2netloc.Url2Netloc] = None, continue_dataset: Optional[PyFunceble.dataset.autocontinue.base.ContinueDatasetBase] = None, inactive_dataset: Optional[PyFunceble.dataset.inactive.base.InactiveDatasetBase] = None, cidr2subject: Optional[PyFunceble.converter.cidr2subject.CIDR2Subject] = None)[source]¶ Bases:
object
Provides an interface for the file preloading. The main idea behind this interface is to read all lines of the given file parse each lines into something our autocontinue dataset understand.
Once everything preloaded in the autocontinue dataset, one can use the
PyFunceble.dataset.autocontinue.base.ContinueDataset.get_to_test()
to get the next subject to test.By doing this, we don’t have to re-read a file completely once we are sure that the hash of the file didn’t changed.
Parameters: - authorized – The authorization to launch.
If
None
is given, we will try to guess the best value. - protocol – The protocol describing the file to test.
-
STD_AUTHORIZED
= False¶
-
adblock_inputline2subject
= None¶
Provides the current state of the
_authorized
attribute.
-
checker_type
= None¶
-
cidr2subject
= None¶
-
continue_dataset
= None¶
-
continuous_integration
= None¶
-
ensure_protocol_is_given
()[source]¶ Ensures that the protocol is given before launching the decorated method.
Raises: RuntimeError – When the protocol is not declared yet.
Executes the decorated method only if we are authorized to process. Otherwise, apply the given
default
.Warning
If
None
is given as default value, this method will return theself
object.
Try to guess and set the value of the
_authorized
attribute.
-
inputline2subject
= None¶
-
protocol
¶ Provides the current state of the
_file_path
attribute.
-
rpz_inputline2subject
= None¶
-
rpz_policy2subject
= None¶
Sets the value of the
_authorized
attribute.Parameters: value – The value to set.
-
set_protocol
(value: dict) → PyFunceble.cli.file_preloader.FilePreloader[source]¶ Sets the value of the
_protocol
attribute.Parameters: value – The value to set.
-
start
(print_dots: bool = False) → PyFunceble.cli.file_preloader.FilePreloader[source]¶ Starts the pre-loading of the currently set file path.
-
subject2complements
= None¶
-
url2netloc
= None¶
-
wildcard2subject
= None¶
- authorized – The authorization to launch.
If
PyFunceble.cli.storage module¶
The tool to check the availability or syntax of domain, IP or URL.
██████╗ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗ ██████╗███████╗██████╗ ██╗ ███████╗
██╔══██╗╚██╗ ██╔╝██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝██╔══██╗██║ ██╔════╝
██████╔╝ ╚████╔╝ █████╗ ██║ ██║██╔██╗ ██║██║ █████╗ ██████╔╝██║ █████╗
██╔═══╝ ╚██╔╝ ██╔══╝ ██║ ██║██║╚██╗██║██║ ██╔══╝ ██╔══██╗██║ ██╔══╝
██║ ██║ ██║ ╚██████╔╝██║ ╚████║╚██████╗███████╗██████╔╝███████╗███████╗
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ ╚══════╝╚══════╝
Provides the common storage location for all entry points.
- Author:
- Nissar Chababy, @funilrys, contactTATAfunilrysTODTODcom
- Special thanks:
- https://pyfunceble.github.io/#/special-thanks
- Contributors:
- https://pyfunceble.github.io/#/contributors
- Project link:
- https://github.com/funilrys/PyFunceble
- Project documentation:
- https://pyfunceble.readthedocs.io/en/latest/
- Project homepage:
- https://pyfunceble.github.io/
License:
Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
PyFunceble.cli.storage_facility module¶
The tool to check the availability or syntax of domain, IP or URL.
██████╗ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗ ██████╗███████╗██████╗ ██╗ ███████╗
██╔══██╗╚██╗ ██╔╝██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝██╔══██╗██║ ██╔════╝
██████╔╝ ╚████╔╝ █████╗ ██║ ██║██╔██╗ ██║██║ █████╗ ██████╔╝██║ █████╗
██╔═══╝ ╚██╔╝ ██╔══╝ ██║ ██║██║╚██╗██║██║ ██╔══╝ ██╔══██╗██║ ██╔══╝
██║ ██║ ██║ ╚██████╔╝██║ ╚████║╚██████╗███████╗██████╔╝███████╗███████╗
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ ╚══════╝╚══════╝
Provides some facilities for the storage module.
- Author:
- Nissar Chababy, @funilrys, contactTATAfunilrysTODTODcom
- Special thanks:
- https://pyfunceble.github.io/#/special-thanks
- Contributors:
- https://pyfunceble.github.io/#/contributors
- Project link:
- https://github.com/funilrys/PyFunceble
- Project documentation:
- https://pyfunceble.readthedocs.io/en/latest/
- Project homepage:
- https://pyfunceble.github.io/
License:
Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Module contents¶
The tool to check the availability or syntax of domain, IP or URL.
██████╗ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗ ██████╗███████╗██████╗ ██╗ ███████╗
██╔══██╗╚██╗ ██╔╝██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝██╔══██╗██║ ██╔════╝
██████╔╝ ╚████╔╝ █████╗ ██║ ██║██╔██╗ ██║██║ █████╗ ██████╔╝██║ █████╗
██╔═══╝ ╚██╔╝ ██╔══╝ ██║ ██║██║╚██╗██║██║ ██╔══╝ ██╔══██╗██║ ██╔══╝
██║ ██║ ██║ ╚██████╔╝██║ ╚████║╚██████╗███████╗██████╔╝███████╗███████╗
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ ╚══════╝╚══════╝
Provides everything related to the CLI usage.
- Author:
- Nissar Chababy, @funilrys, contactTATAfunilrysTODTODcom
- Special thanks:
- https://pyfunceble.github.io/#/special-thanks
- Contributors:
- https://pyfunceble.github.io/#/contributors
- Project link:
- https://github.com/funilrys/PyFunceble
- Project documentation:
- https://pyfunceble.readthedocs.io/en/latest/
- Project homepage:
- https://pyfunceble.github.io/
License:
Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.