Primary Modules¶
Additions to the primary modules.
- Added the following new functions:
khoros.structures.boards._construct_where_clause()
khoros.structures.boards._construct_order_by_clause()
This page documents the additions, changes, fixes, deprecations and removals made in each release.
Release Date: 2023-11-01
Additions to the Khoros Core Object.
Additions to the primary modules.
khoros.structures.boards._construct_where_clause()
khoros.structures.boards._construct_order_by_clause()
Changes to the Khoros Core Object.
Updated the khoros.core.Khoros.Board.get_all_messages()
method to include
the where_filter
and descending
parameters to further filter the LiQL query
that is performed.
Changes to the primary modules.
Updated the khoros.structures.boards.get_all_messages()
function to include
the where_filter
and descending
parameters to further filter the LiQL query
that is performed.
return
statement from the following functions:khoros.objects.messages._verify_required_fields()
khoros.objects.messages._confirm_field_supplied()
Fixes to the primary modules.
Converted some unnecessary f-strings into standard strings in the
khoros.structures.boards._structure_label_settings()
function.
Converted an unnecessary f-string into a standard string in the
khoros.objects.messages.parse_v2_response()
function.
Bumped urllib3 from 1.26.16 to 1.26.17 to address CVE-2023-43804.
Release Date: 2023-08-08
Additions to the Khoros Core Object.
Added the khoros.core.Khoros.Board.get_message_count()
method.
Added the khoros.core.Khoros.Board.get_all_messages()
method.
(Feature #63)
khoros.core.Khoros.Label
class with the following methods:Added the khoros.core.Khoros.User.get_users_count()
method.
Added the khoros.core.Khoros.User.get_all_users()
method.
(Feature #64)
Added the ability to define the logging level when instantiating the core object.
Added additional log messages to the core object.
Additions to the primary modules.
Added the khoros.structures.boards.get_message_count()
function.
khoros.structures.boards
module:khoros.structures.boards._perform_single_query()
khoros.structures.boards._add_missing_cols()
Added the khoros.objects.labels.get_labels_for_message()
function.
khoros.objects.users
module:khoros.objects.users.get_all_users()
(Feature #64)
khoros.objects.users._perform_single_query()
khoros.objects.users._add_missing_cols()
Additions to the supporting modules.
Added the khoros.utils.tests.test_messages.test_count_messages()
test function.
Changes to the primary modules.
Changed the generic exception in khoros.api._report_failed_attempt()
to a RuntimeError
exception.
khoros.api._api_request_with_payload()
khoros.api._api_request_without_payload()
khoros.api._report_failed_attempt()
khoros.api._raise_exception_for_repeated_timeouts()
khoros.api._attempt_json_conversion()
khoros.api._confirm_field_supplied()
khoros.auth._get_session_key_header()
khoros.bulk_data._construct_headers()
khoros.api._display_ssl_verify_warning()
Changes to the supporting modules.
Updated the khoros.utils.tests.test_users.test_get_counts()
function
to test the khoros.core.Khoros.User.get_users_count()
method.
Bumped Certifi from 2022.12.7 to 2023.7.22 to address the security vulnerability CVE-2023-37920.
Release Date: 2023-05-23
Updated requests
to v2.31.0 to address the security vulnerability CVE-2023-32681.
Updated the pyproject.toml
and poetry.lock
files accordingly.
Release Date: 2023-01-02
Added poetry support by adding the pyproject.toml
and poetry.lock
files.
Updated pytest
to v7.2.0 to address the security vulnerability CVE-2022-42969.
Addressed the security vulnerability CVE-2022-40897.
Disabled the bandit.yml
workflow as it is experiencing unknown runtime errors.
Release Date: 2022-12-05
Additions to the Khoros Core Object.
Added the khoros.core.Khoros.User.get_all_users_count()
method.
Added the khoros.core.Khoros.Archives.is_archived()
method.
Additions to the primary modules.
Added the khoros.objects.users.get_all_users_count()
function.
Added the khoros.objects.archives.is_archived()
function.
khoros.bulk_data
module:khoros.bulk_data._validate_bulk_data_export()
Additions to the supporting modules.
Added the khoros.errors.exceptions.InvalidParameterError
exception class.
Added the khoros.utils.tests.resources.mock_bulk_data_json()
function.
Added the khoros.utils.tests.test_archives.test_archive_check()
test function.
Added the khoros.utils.tests.test_bulk_data.test_bulk_data_query()
test function.
Changes to the primary modules.
Improved the error handling in the khoros.bulk_data.query()
function to display
the response text in the raised exception when available.
Changes to the supporting modules.
Updated the khoros.utils.tests.test_exceptions.test_raising_exceptions()
function
to test raising the khoros.errors.exceptions.InvalidParameterError
exception class.
Updated the khoros.utils.tests.resources.MockResponse
class to introduce the
status_code
attribute to the object.
Changed the setuptools
version in requirements.txt
to be 65.5.1 in order to mitigate
the Regular Expression Denial of Service
vulnerability identified by Snyk in Pull Request #62.
Changed the versions for the Sphinx-related packages in requirements.txt
to be more current.
Release Date: 2022-10-28
Fixes in the Khoros Core Object.
Fixed the docstring for the khoros.core.Khoros.Settings.define_node_setting()
method
to reflect the proper default value of the return_json
parameter and to define the correct
return value.
Fixes in the primary modules.
Fixed the docstring for the khoros.objects.settings.define_node_setting()
function
to reflect the proper default value of the return_json
parameter and to define the correct
return value.
Fixes in the supporting modules.
Fixed an issue with testing the retrieval of views in the
khoros.utils.tests.test_categories.test_category_details()
function to ensure a
successful assertion.
Release Date: 2022-10-04
Additions to the supporting modules.
Added the khoros.utils.tests.resources.MockResponse
class.
Added the khoros.utils.tests.resources.mock_success_post()
and
khoros.utils.tests.resources.mock_error_post()
functions.
Added the khoros.utils.tests.test_categories.test_create_category()
function.
khoros.utils.tests.test_albums
module with the following functions:khoros.utils.tests.test_archives
module with the following functions:khoros.utils.tests.test_users
module with the following functions:khoros.utils.tests.test_core_utils
module:Added the khoros.utils.tests.test_exceptions
module with the
khoros.utils.tests.test_exceptions.test_raising_exceptions()
function.
khoros.utils.tests.test_error_handling
module with the following functions:khoros.utils.tests.test_error_handling.test_get_html_error()
khoros.utils.tests.test_error_handling.test_verify_core_object_present()
khoros.utils.tests.test_error_handling.test_translate_error()
khoros.utils.tests.test_error_handling.test_translation_check()
khoros.utils.tests.test_error_handling.test_parse_translation_error()
Added the khoros.utils.tests.test_studio
module with the
khoros.utils.tests.test_studio.test_studio_functions()
function.
Changes to the supporting modules.
Updated the khoros.utils.tests.test_roles.test_get_role_id()
function
to support GitHub Workflows and to test the raising of exceptions for invalid data.
Updated the khoros.errors.exceptions.InvalidEndpointError
exception to
remove part of the default message that was specifically for Khoros JX.
Fixes in the supporting modules.
Fixed the khoros.errors.exceptions.DataMismatchError
exception so that it will
display an appropriate error message when a keyword argument is passed.
Fixed an issue with the message not displaying properly in the
khoros.errors.exceptions.MessageTypeNotFoundError
exception when a message type
is explicitly defined.
Fixed an issue with how the message is displayed in the
khoros.errors.exceptions.NodeIDNotFoundError
and
khoros.errors.exceptions.NodeTypeNotFoundError
exceptions when a value is passed
as an argument.
Fixed an issue with the message not displaying properly in the
khoros.errors.exceptions.InvalidRoleError
and
khoros.errors.exceptions.InvalidRoleTypeError
exceptions when a role or role type
is explicitly defined.
Fixed an issue with the message not displaying properly in the
khoros.errors.exceptions.UserCreationError
exception when a user or exception
message is explicitly defined.
Release Date: 2022-09-29
Additions to the supporting modules.
Changes to the supporting modules.
Updated the khoros.utils.tests.resources.instantiate_with_local_helper()
function
to raise a FileNotFoundError
exception if the helper file cannot be found.
Updated the khoros.utils.tests.resources.control_data_exists()
and
khoros.utils.tests.resources.import_control_data()
functions to support the
GitHub Workflows control data.
Updated the khoros.utils.tests.test_categories()
functions to support the GitHub
Workflows helper file instantiation.
Updated the khoros.utils.tests.test_messages()
functions to support the GitHub
Workflows helper file instantiation.
Updated the khoros.utils.tests.test_liql()
functions to support the GitHub
Workflows helper file instantiation.
Fixes in the primary modules.
Fixed the issue reported in Issue #59
where the khoros.structures.base.get_structure_field()
function was failing with
a KeyError
exception.
Removals in the supporting modules.
Removed the khoros.utils.tests.test_categores.get_control_data()
and
khoros.utils.tests.test_categories.get_core_object()
functions that became obsolete.
Release Date: 2022-09-28
Additions to the Khoros Core Object.
Additions to the primary modules.
khoros.objects.messages
module:khoros.objects.messages._set_spam()
Additions to the supporting modules.
khoros.utils.tests.resources
module:khoros.utils.tests.resources._get_control_dataset_file()
khoros.utils.tests.test_messages
module:khoros.utils.tests.test_communities
module:khoros.utils.tests.test_categories
module:khoros.utils.tests.test_communities.get_core_object()
khoros.utils.tests.test_communities.get_control_data()
khoros.utils.tests.test_communities.test_get_category_id()
khoros.utils.tests.test_communities.test_total_count()
khoros.utils.tests.test_communities.test_if_category_exists()
khoros.utils.tests.test_communities.test_category_details()
Fixes to the primary modules.
Fixed the issue reported in Issue #58
where the khoros.structures.categories.get_creation_date()
function was failing with
an exception.
Release Date: 2022-09-20
Additions to the Khoros Core Object.
Added and configured the self.bulk_data_settings
dictionary in the core object.
khoros.core.Khoros.BulkData
inner class with the following methods:khoros.core.Khoros.Message
inner class:Added the khoros.core.Khoros.Message.get_context_id()
method.
Added the khoros.core.Khoros.Message.get_context_url()
method.
Added the khoros.core.Khoros.Message.define_context_id()
method.
Added the khoros.core.Khoros.Message.define_context_url()
method.
Added the khoros.core.Khoros.User.get_registered_users_count()
method.
Added the khoros.core.Khoros.User.get_online_users_count()
method.
Added the khoros.core.Khoros.Community.sso_enabled()
method.
Additions to the primary modules.
khoros.bulk_data
module with the following functions:khoros.bulk_data._construct_headers()
khoros.bulk_data._get_export_header()
khoros.bulk_data._construct_parameters()
khoros.bulk_data._validate_date_field()
khoros.objects.messages
module:Added the khoros.objects.messages.get_context_id()
function.
Added the khoros.objects.messages.get_context_url()
function.
Added the khoros.objects.messages.define_context_id()
function.
Added the khoros.objects.messages.define_context_url()
function.
Added the khoros.objects.users.get_registered_users_count()
function.
Added the khoros.objects.users.get_online_users_count()
function.
Added the khoros.structures.communities.sso_enabled()
function.
Additions to the supporting modules.
Added the khoros.utils.helper._get_bulk_data_info()
function.
Added the khoros.utils.tests.resources.instantiate_with_placeholder()
function.
khoros.utils.tests.test_bulk_data
module with the following test functions:Added the khoros.utils.tests.test_settings.test_sso_status_retrieval()
test function.
khoros.utils.tests.test_roles()
module with the following functions:Added the bulk_data
section to the examples/helper.yml
file.
Changes to the Khoros Core Object.
Merged two if
statements in the khoros.core.Khoros._populate_auth_settings()
method.
Added a reference to the Khoros Developer Documentation in the
khoros.core.Khoros.Role.get_users_with_role()
method.
Changes to the primary modules.
Improved the error handling in the khoros.auth.get_session_key()
function.
if
statements in the following functions:Added a reference to the Khoros Developer Documentation in the
khoros.objects.roles.get_users_with_role()
function.
Changes to the supporting modules.
Added a function call in khoros.utils.helper._get_connection_info()
to parse the
Bulk Data API connection information when applicable.
Merged two if
statements in the khoros.utils.version.warn_when_not_latest()
function.
Made a minor change to the docstring for khoros.errors.handlers._exceptions_module_imported()
.
Updated the Security Policy to add support for version 5.0.x and to remove support for version 3.x.x.
Fixes to the Khoros Core Object.
Removed the redundant return
statement from the
khoros.core.Khoros.Tag.add_tags_to_message()
method.
Fixes to the primary modules.
Updated the khoros.structures.grouphubs._create_group_hub_with_avatar()
to pass a defined
content-type value which was previously stored in an unused variable.
return
statements from the following functions in the khoros.api
module:khoros.api._confirm_field_supplied()
khoros.api._display_ssl_verify_warning()
khoros.api._report_failed_attempt()
Removed redundant return
statements from the following functions in the
khoros.objects.tags
module:
Removed the redundant return
statement from the
khoros.structures.boards._warn_about_ignored_settings()
function.
Removed the redundant return
statement from the
khoros.structures.communities._check_for_multiple_tenants()
function.
Removed the redundant return
statement from the
khoros.structures.grouphubs.refresh_enabled_discussion_styles()
function.
Removed the DeprecationWarning
from the
khoros.structures.base.Mapping
class to address Issue
#57.
Fixes to the supporting modules.
Removed redundant return
statements from the following functions in the
khoros.utils.version
module:
Removed redundant return
statements from the following functions in the
khoros.utils.environment
module:
khoros.utils.environment._update_env_list()
khoros.utils.environment._update_env_mapping()
Removed redundant return
statements from the following functions in the
khoros.errors.handlers
module:
khoros.errors.handlers._import_exceptions_module()
khoros.errors.handlers._import_exception_classes()
Removed the redundant return
statement from the
khoros.utils.core_utils.display_warning()
function.
Removed the redundant return
statement from the
khoros.utils.tests.resources.set_package_path()
and
khoros.utils.tests.resources.parse_testing_config_file()
functions.
Removed the redundant return
statement from all or most functions in the
following modules:
Release Date: 2022-01-16
Additions to the Khoros Core Object.
Added the khoros.core.Khoros.Message.get_metadata()
method.
Additions to the primary modules.
Added the khoros.objects.messages.get_metadata()
function.
Additions to the supporting modules.
Added the khoros.errors.exceptions.InvalidMetadataError
exception class.
Changes to the Khoros Core Object.
Replaced the phrase “This function” with “This method” in all of the core method docstrings.
Release Date: 2021-10-12
Changes to the Khoros Core Object.
Introduced the proxy_user_object
parameter to the khoros.core.Khoros.Message.create()
method to allow messages to be created on behalf of other users.
Introduced the proxy_user_object
parameter to the khoros.core.Khoros.Message.update()
method to allow messages to be updated on behalf of other users.
Changes to the primary modules.
Introduced the proxy_user_object
parameter to the khoros.objects.messages.create()
function to allow messages to be created on behalf of other users.
Introduced the proxy_user_object
parameter to the khoros.objects.messages.update()
function to allow messages to be updated on behalf of other users.
Release Date: 2021-10-10
Added Python version 3.10 to setup.py
.
Release Date: 2021-10-10
Additions to the Khoros Core Object.
Added the khoros.core.Khoros.Message.validate_message_payload()
static method.
khoros.core.Khoros.SAML
inner class with the following methods:Added the khoros.core.Khoros._import_saml_class()
method.
Additions to the primary modules.
khoros.saml
module with the following functions:khoros.saml._is_decoded()
khoros.saml._get_api_uri()
Added the khoros.objects.messages.validate_message_payload()
function.
Added the khoros.objects.labels
module to begin addressing the enhancement
request #48.
Added the global variable ssl_verify_disabled
to the khoros.api
module
to allow the verification to be performed even in functions that do not leverage the
instantiated core object.
Added the khoros.api._display_ssl_verify_warning()
function.
Additions to the supporting modules.
Added the khoros.errors.exceptions.InvalidMessagePayloadError
exception class.
Added the khoros.utils.tests.test_messages.test_payload_validation()
test function.
Added the khoros.saml
and khoros.objects.labels
modules to the
Primary Modules page.
Added a TODO
section in the docstring for the
khoros.objects.messages.construct_payload()
function to indicate the missing
functionality that still remains to be added.
Added the new Managing Node Settings page to the documentation.
Created the GitHub issue template .github/ISSUE_TEMPLATE/documentation_request.md
.
Changes to the Khoros Core Object.
Added support for the full_payload
parameter in the khoros.core.Khoros.Message.create()
method to implement the enhancement request #46.
Added support for the wrap_json
parameter in the khoros.core.Khoros.Tag.structure_tags_for_message()
function to implement the enhancement request #47.
Updated the __init__
module for the core object class to define the ssl_verify_disabled
global
variable in the khoros.api
module as True
when the ssl_verify
flag in the core settings are
explicitly set to False
. (See line 186)
Changes to the primary modules.
Added support for the full_payload
parameter in the khoros.objects.messages.create()
function to implement the enhancement request #46.
Added support for the wrap_json
parameter in the khoros.objects.tags.structure_tags_for_message()
function to implement the enhancement request #47.
Updated the __all__
variable in the khoros.objects
init module (__init__py.
) and
added import statements for the khoros.objects.attachments
, khoros.objects.base
and
khoros.objects.labels
modules.
Updated the khoros.api.should_verify_tls()
function to introduce the ssl_verify_disabled
global
variable, which allows the check to be performed even when the core object is not passed to the function.
Changes to the supporting modules.
Added support for utilizing the defined_settings
parameter in the
khoros.utils.tests.resources.initialize_khoros_object()
function.
Updated the GitHub issue template .github/ISSUE_TEMPLATE/bug_report.md
to be more intuitive.
Added quotes in pythonpackage.yml
to avoid issue referenced in
actions/setup-python#160.
Added Python v3.10 to pythonpackage.yml
.
Refactored pythonpackage.yml
to perform macOS builds in order to ensure support for Python
v3.10 per request #50.
Fixes in the Khoros Core Object.
Fixed some incorrect information in the docstring for khoros.core.Khoros.User.get_username()
.
Fixed an issue in the __init__
method of the core object where the ssl_verify
parameter
was being mostly disregarded.
Fixed an issue in the __init__
method of the core object where the auto_connect
parameter
defined via the defined_settings
parameter was being disregarded.
Fixes in the primary modules.
Fixed an issue in the following functions that prevented the SSL verification from being disabled when configured to do so in the helper settings.
khoros.api._api_request_with_payload()
khoros.api._api_request_without_payload()
Refactored the khoros.liql.parse_where_clause()
function to be more efficient and Pythonic,
and added missing parenthesis on the exception classes. Docstring syntax errors were also fixed.
Fixes in the supporting modules.
Fixed an issue in the khoros.utils.helper.get_helper_settings()
function where the
ssl_verify
field was being overridden even if defined elsewhere.
Release Date: 2021-09-24
Fixes to the primary modules.
Updated the khoros.api.put_request_with_retries()
function call within the
khoros.roles._assign_role_with_v2()
function to explicitly define the content-type
as application/json
in order to resolve Issue #45.
Release Date: 2021-09-13
Additions to the Khoros Core Object.
Added the khoros.core.Khoros._connect_with_lithium_token()
method to connect using
LithiumSSO Token authentication.
Note
This change was introduced by stevenspasbo via Pull Request #42.
Additions to the primary modules.
Added the khoros.auth.get_sso_key()
function.
Added the khoros.auth._get_khoros_login_url()
private function.
Note
This change was introduced by
stevenspasbo via
Pull Request #42.
However, the use of the xml.etree.ElementTree
module was replaced
with the defusedxml.ElementTree
module to proactively mitigate a
known XML attack vulnerability
in the former module.
Additions to the supporting modules.
Added the khoros.errors.exceptions.SsoAuthenticationError
exception for use with
LithiumSSO Token authentication.
khoros.utils.tests.test_ssl_verify
module with the following test functions:Added example syntax for authenticating using a
LithiumSSO token
in the README.md
file.
Note
This change was introduced by stevenspasbo via Pull Request #42.
Changes to the Khoros Core Object.
Support was introduced in the khoros.core.Khoros
core object class to support
LithiumSSO Token authentication.
Note
This change was introduced by stevenspasbo via Pull Request #42.
Support was introduced in the khoros.core.Khoros
core object class to support
user impersonation with LithiumSSO token authentication.
Note
This change was introduced by stevenspasbo via Pull Request #44.
The following methods within the khoros.core.Khoros
core object class
were improved to avoid unnecessary KeyError
exceptions:
khoros.core.Khoros._populate_core_settings()
khoros.core.Khoros._populate_auth_settings()
khoros.core.Khoros._populate_construct_settings()
khoros.core.Khoros._parse_helper_settings()
khoros.core.Khoros._validate_base_url()
khoros.core.Khoros._define_url_settings()
khoros.core.Khoros._session_auth_credentials_defined()
khoros.core.Khoros._connect_with_session_key()
General code improvements were made throughout the __init__
method for the
khoros.core.Khoros
core object class.
Changes to the primary modules.
The URI in the khoros.auth.get_session_key()
function is now generated utilizing the
khoros.auth._get_khoros_login_url()
function.
Note
This change was introduced by stevenspasbo via Pull Request #42.
Support was introduced in the khoros.objects.users.ImpersonatedUser
object class
to support user impersonation with LithiumSSO token authentication.
Note
This change was introduced by stevenspasbo via Pull Request #44.
Added the defusedxml
package to requirements.txt
and as a required install package
in setup.py
.
Fixes to the Khoros Core Object.
Resolved Issue #41 which involved the
requests.exceptions.InvalidSchema
exception being raised when using absolute URLs
with the khoros.core.Khoros.get()
, khoros.core.Khoros.post()
and
khoros.core.Khoros.put()
core methods.
Corrected how the exception error message is defined in the khoros.core.Khoros.connect()
method.
Release Date: 2021-08-05
Changes to the primary modules.
Updated the khoros.objects.archives.aggregate_results_data()
function to properly
handle the ARCHIVED
status when it is returned.
Release Date: 2021-06-29
Additions to the Khoros Core Object.
Added the khoros.core.Khoros.Archives
inner class within the
core khoros.Khoros
object with the following methods:
Added the khoros.core.Khoros._import_archives_class()
method.
Added the khoros.core.Khoros.Tag
inner class within the core
khoros.Khoros
object with the following methods:
Added the khoros.core.Khoros._import_tag_class()
method.
Additions to the primary modules.
Added the khoros.objects.archives.aggregate_results_data()
function.
Additions to the supporting modules.
Added the following functions to utilize with the pytest
package
for unit testing:
khoros.utils.tests.resources.instantiate_with_local_helper()
khoros.utils.tests.resources._get_local_helper_file_name()
khoros.utils.tests.test_liql
module:Added sections for the khoros.core.Khoros.Archives
and
khoros.core.Khoros.Archives
inner classes on the
Khoros Core Object page.
Added a section for the khoros.utils.tests.test_settings
module on the Supporting Modules page.
Changes to the Khoros Core Object.
Removed the following parameters from the khoros.core.Khoros.Archives.archive()
and khoros.core.Khoros.Archives.unarchive()
methods: full_response
,
return_id
, return_url
, return_api_url
, return_http_code
, return_status
,
return_error_messages
and split_errors
Introduced the return_items
parameter in the khoros.core.Khoros.query()
function to automatically reduce the JSON response to only the returned items when
desired. (False
by default)
Changes to the primary modules.
Some minor docstring adjustments were made in the khoros.objects.archives.archive and khoros.objects.archives.unarchive functions.
Explicitly set the full_response
flag in the khoros.objects.archives.archive()
and khoros.objects.archives.unarchive()
functions because of unique response format
and subsequently removed the following parameters: full_response
, return_id
,
return_url
, return_api_url
, return_http_code
, return_status
,
return_error_messages
and split_errors
Introduced the optional aggregate_results
parameter in the khoros.objects.archives.archive
and khoros.objects.archives.unarchive functions.
Introduced the return_items
parameter in the khoros.liql.perform_query()
function to automatically reduce the JSON response to only the returned items when
desired. (False
by default)
Imported the khoros.objects.tags
module within the __init__
file for the
khoros.objects
module and added tags
to the __all__
special variable.
Changes to the supporting modules.
Renamed the khoros.utils.tests.test_liql_where_parsing
module to be
khoros.utils.tests.test_liql
to allow other LiQL tests to be performed
within the same module.
Updated the khoros.utils.tests.test_liql.set_package_path()
function to
leverage a global variable to ensure the operation is only performed once.
Updated the supporting modules to account for the
renamed khoros.utils.tests.test_liql
module.
Adjusted the Sphinx-related package versions in requirements.txt
.
Fixes to the Khoros Core Object.
Corrected an issue in the khoros.core.Khoros.Role.get_roles_for_user()
docstring
where the wrong raised exception was referenced.
Note
This change was introduced by stevenspasbo via Pull Request #33.
Added some missing exception references in the khoros.core.Khoros.query()
docstring.
Fixes to the primary modules.
Fixed an issue with the khoros.objects.archives.structure_archive_payload()
function call in the khoros.objects.archives.archive()
function.
Renamed the incorrect JSON field messageID
to be messageId
instead in the
khoros.objects.archives._format_single_archive_entry()
function to prevent the
following error from getting returned:
{
'status': 'error',
'message': 'A possible invalid request has been made.
Make sure you are following the API spec and have used the correct URL,
are included all required parameters and if a request payload is required
you have included one.',
'data': {
'type': 'error_data',
'code': 309,
'developer_message': '',
'more_info': ''
},
'metadata': {}
}
Added a missing section of the docstring for the
khoros.objects.tags.structure_tags_for_message()
function.
Release Date: 2021-05-20
Additions to the Khoros Core Object.
Added the khoros.core.Khoros.User.impersonate_user()
method.
Added the khoros.core.Khoros.Role.get_role_id()
method.
khoros.core.Khoros.V2
class with the following methods:Added and called the khoros.core.Khoros._import_v2_class()
protected class.
Additions to the primary modules.
Added the khoros.objects.users.ImpersonatedUser
object class for performing API calls
as other users.
Added the khoros.objects.users.impersonate_user()
function to assist in instantiating
the khoros.objects.users.ImpersonatedUser
object.
khoros.objects.roles()
module:khoros.objects.roles._assign_role_with_v1()
khoros.objects.roles._assign_role_with_v2()
khoros.objects.roles._validate_node_type()
khoros.objects.roles._query_for_users()
Added the khoros.api._add_json_query_to_uri()
function.
Additions to the supporting modules.
Added the khoros.errors.exceptions.FeatureNotConfiguredError
exception.
Added the read()
and get_version()
functions to setup.py
to address Issue #28.
Note
This change was introduced by truthbyron via Pull Request #31.
Changes to the Khoros Core Object.
Updated the methods below to introduce the proxy_user_object
parameter to allow API requests
to be performed on behalf of other users.
Changed the default value of the return_json
parameter to True
in the
khoros.core.Khoros.Settings.define_node_setting()
function.
Updated the khoros.core.Khoros.User.create()
method to return the API
response and introduced the ignore_exceptions
parameter.
Changes to the primary modules.
Updated the functions below to introduce the proxy_user_object
parameter to allow API requests
to be performed on behalf of other users.
Introduced the user_and_type
parameter in the khoros.api.get_v1_user_path()
function
that can be passed instead of a parameter for a specific type.
Changed the default value of the return_json
parameter to True
in the
khoros.objects.settings.define_node_setting()
function.
Added proper support for group hubs in the
khoros.objects.settings.define_node_setting()
and
khoros.objects.settings._get_v1_node_setting()
functions.
Removed node type validation from the khoros.objects.settings.define_node_setting()
function.
Added node type validation in the khoros.objects.settings._get_v2_node_setting()
function.
Updated the khoros.objects.users.create()
function to return the API response and
introduced the ignore_exceptions
parameter.
Updated the khoros.objects.users.delete()
function to raise the new
khoros.errors.exceptions.FeatureNotConfiguredError
exception when appropriate.
Added group hub support in the khoros.api.get_v1_node_collection()
function.
Changes to the supporting modules.
Introduced the ability for the
khoros.errors.exceptions.MissingRequiredDataError
exception to accept theparam
keyword argument and display a more specific message.Updated the
khoros.utils.environment
module to no longer import thePyYAML
package directly and instead to leverage theimportlib
module in thekhoros.utils.environment._import_custom_names_file()
function as necessary.
Changes to the documentation.
khoros.api._confirm_field_supplied()
Updated the example in the header block for the khoros.objects.users
module.
Updated the header block in the setup.py
script to have more information.
Moved the PyYAML
, urllib3
, requests
and setuptools
packages from the
requirements.txt
file to the setup.py
file within the install_requires
list
to address Issue #28.
Note
This change was introduced by truthbyron via Pull Request #31.
Fixes to the primary modules.
Fixed issues with the primary functions in the khoros.api
module that was resulting
in raised exceptions if JSON responses were requested in v1 API calls without explicitly
including the restapi.response_format=json
query string.
Fixed issues in the khoros.objects.users.structure_payload()
and
khoros.objects.users.process_user_settings()
functions that were resulting
in a KeyError
exception potentially getting raised.
Added the missing type
key to the payload dictionary in the
khoros.objects.users.structure_payload()
function that was preventing users from
getting created successfully.
Fixed an issue in the khoros.objects.subscriptions._construct_category_payload()
where the payload was getting double-wrapped with the data
dictionary key.
Refactored the khoros.objects.roles.get_users_with_role()
function to leverage a
while
loop instead of recursion in order to avoid raising a RecursionError
exception with larger queries.
Wrapped the cursor string in the khoros.liql.structure_cursor_clause()
function
in single quotes to fix an Invalid query syntax
error that was raising the
khoros.errors.exceptions.LiQLParseError
exception.
Release Date: 2021-03-26
Additions to the Khoros Core Object.
Added the khoros.core.Khoros.get_session_key()
method.
Added the khoros.core.Khoros.Role.get_users_with_role()
method.
khoros.core.Khoros.Subscription
inner class with the following methods:Added the khoros.core.Khoros._import_subscription_class()
method and leveraged it to
allow subscription-related methods to be called with the khoros.subscriptions
namespace.
Additions to the primary modules.
Added the khoros.api.get_v1_user_path()
and khoros.api.get_v1_node_collection()
functions to facilitate crafting API v1 endpoint URIs.
khoros.objects.subscriptions
module with the following functions:khoros.objects.subscriptions._construct_category_payload()
khoros.objects.subscriptions._construct_target_subscription()
Updated the __init__.py
file for the khoros.objects
module to import the new
khoros.objects.subscriptions
module and add it to the __all__
variable.
Added the khoros.auth._get_session_key_payload()
function.
Added the khoros.auth._get_session_key_header()
function.
khoros.objects.roles
module.Added the khoros.errors.exceptions.structure_cursor_clause()
function.
Additions to the supporting modules.
Added the khoros.utils.core_utils.convert_dict_list_to_simple_list()
function.
Added the khoros.utils.core_utils.is_iterable()
function.
Additions to the documentation.
Added the .github/workflows/bandit.yml
GitHub Action workflow configuration file
to leverage the
Python security check using Bandit
action to perform security audits with each push event.
Added badges in the README page.
Added comments in multiple scripts within the library to address how the bandit GitHub Action will identify users.
Changes to the Khoros Core Object.
Updated the khoros.core.Khoros.Role.get_roles_for_user()
method to allow SELECT fields
to be explicitly defined.
Removed the unnecessary pass
statement in the khoros.core.Khoros.close()
method.
Removed the unnecessary return
statements in the khoros.core.Khoros.signout()
and
khoros.core.Khoros.User.create()
methods.
Replaced type()
with isinstance()
when performing typechecks throughout the
khoros.core
module.
Changes to the primary modules.
The khoros.auth.get_session_key()
function has been updated to allow a secondary user to be
authenticated by passing either a username and password or by passing only a username when calling the
function as a previously authenticated user with Administrator privileges.
Added the community
, grouphub
and global
keys to the ROLE_TYPES
dictionary constant in
the khoros.objects.roles
module.
Updated the khoros.objects.roles.get_roles_for_user()
function to allow SELECT fields to be
explicitly defined.
Renamed the khoros.liql._parse_select_fields()
function to be
khoros.liql.parse_select_fields()
instead. (i.e. private to public function)
Refactored the khoros.liql.parse_select_fields()
function to leverage the isinstance()
built-in function.
Removed the mandatory dependency on the requests_toolbelt
package by leveraging the importlib
package to attempt to import it locally as needed within the khoros.api.encode_multipart_data()
function.
Removed an unnecessary else
statement in the khoros.api.define_headers()
function after the
khoros.errors.exceptions.MissingAuthDataError
exception is raised.
Replaced type()
with isinstance()
when performing the typecheck in the
khoros.api.perform_v1_search()
function.
pass
statement in the following functions:khoros.api._api_request_with_payload()
khoros.api._api_request_without_payload()
Changes to the supporting modules.
Added the khoros.utils.log_utils.initialize_logging()
function call to initialize logging within
the khoros.utils.core_utils
module.
Changed the default value for the shell
parameter to be False
in the
khoros.utils.core_utils.run_cmd()
function to improve overall
security
of the library.
Added the optional delimiter
parameter to the khoros.utils.core_utils.convert_string_to_tuple()
function and added functionality to convert delimited strings.
Removed the stale branch 3.0.0
from the .github/workflows/codeql-analysis.yml
file.
Removed requests_toolbelt
from requirements.txt
.
Fixes to the Khoros Core Object.
Updated the khoros.core.Khoros.post()
function so that the query_url
no longer gets prefixed with a slash (/
) if the relative_url
parameter is
set to False
.
Fixes in the primary modules.
Fixed an issue with the khoros.api.payload_request_with_retries()
function
where non-payload API calls (including those with query parameters defined in the URI)
were incorrectly raising a khoros.errors.exceptions.PayloadMismatchError
exception.
Release Date: 2021-03-06
Additions to the Khoros Core Object.
Added the khoros.core.Khoros.get_platform_version()
method.
Additions to the primary modules.
Added the khoros.api.should_verify_tls()
function to determine if SSL/TLS certificates should
be verified when making REST API calls.
Added a warning to the khoros.api.should_verify_tls()
to inform of the suppressed warnings.
Changes to the Khoros Core Object.
Updated the __init__
method for the khoros.core.Khoros
object class to include the ssl_verify
parameter and to establish a key-value pair for it in the core_settings
dictionary.
Changes to the primary modules.
Removed an unnecessary pass
statement from the khoros.api.get_request_with_retries()
function
and initially defined the response
variable with a NoneType
value to prevent a linting error from
being reported.
Introduced support for the ssl_verify
core setting in the khoros.core.Khoros
object within
the following functions:
khoros.api._api_request_with_payload()
khoros.api._api_request_without_payload()
Renamed the function khoros.liql.__parse_select_fields()
to be khoros.liql.__parse_select_fields()
.
Renamed the function khoros.liql.__wrap_string_vales()
to be khoros.liql._wrap_string_values()
.
Renamed the function khoros.liql.__convert_where_dicts_to_lists()
to be
khoros.liql._convert_where_dicts_to_lists()
.
Renamed the function khoros.liql.__parse_where_clause()
to be khoros.liql.parse_where_clause()
and converted it from a private to a public function.
Changes to the supporting modules.
Added support for the ssl_verify
field in the khoros.utils.helper
module.
Refactored the khoros.utils.version.get_latest_stable()
function to leverage the
Python standard library
instead of the requests library which helps address
issue #28.
Release Date: 2021-01-25
Fixes in the primary modules.
Added error handling in the khoros.objects.settings._get_v2_node_setting()
function to prevent
an AttributeError
exception from being raised.
Release Date: 2021-01-08
Additions to the Khoros Core Object.
Added the optional skip_env_variables
argument to the __init__
method of the
khoros.core.Khoros
class to explicitly ignore valid environment variables
when instantiating the core object.
Added the optional empty
argument to the __init__
method of the
khoros.core.Khoros
class to instantiate an empty core object with default values.
Added the method khoros.core.Khoros._populate_empty_object()
to populates necessary
fields to allow an empty object to be instantiated successfully.
Logging (via the khoros.utils.log_utils
module) was introduced in methods throughout
the khoros.core
module.
Changes to the Khoros Core Object.
Introduced the return_json
parameter in the khoros.core.Khoros.Settings.define_node_setting()
method and the khoros.objects.settings.define_node_setting()
function to optionally return the
Community API response in JSON format. (This option prevents the
khoros.errors.exceptions.POSTRequestError
exception from being raised after an unsuccessful API call.)
Introduced the convert_json
parameter in the khoros.core.Khoros.Settings.get_node_setting()
method
and the khoros.objects.settings.get_node_setting()
function to optionally convert JSON strings into
Python dictionaries.
Changes to the primary modules.
Introduced the return_json
parameter in the khoros.objects.settings.define_node_setting()
to
optionally return the Community API response in JSON format. (This option prevents the
khoros.errors.exceptions.POSTRequestError
exception from being raised after an unsuccessful API call.)
Changes to the documentation.
Merged the release notes for version 3.3.0.post0
into those for the subsequent
stable version 3.3.1
.
Added an example function call in the header block of the khoros.utils.log_utils
module.
Made further improvements to the documentation styling in the custom.css
file.
Fixes in the Khoros Core Object.
Updated the __init__
method for the khoros.core.Khoros
class to only skip method arguments
when they explicitly have a None
value and are not just implicitly False
.
Fixes in the primary modules.
The error handling has been improved in the khoros.liql.get_returned_items()
function to avoid
IndexError
exceptions from being raised when no items were found in the LiQL response.
Release Date: 2021-01-06
Additions to the documentation.
Added the Settings Subclass (khoros.core.Khoros.Settings) section to the Khoros Core Object page.
Added the Settings Module (khoros.objects.settings) section to the Primary Modules page.
Updated the CSS styling in custom.css
to improve readability of methods and functions.
Changes to the documentation.
Alphabetized the sections on the Khoros Core Object page.
Removed the introductory sentence for each of the modules on the Primary Modules page as they had become redundant with the same information already present in the docstrings.
Moved the Studio Subclass (khoros.core.Khoros.Studio) section out of the Core Object Subclasses (khoros.core.Khoros) section and into its own, similar to where it is located on the Primary Modules page.
Fixes in the primary modules.
Fixed an issue with the khoros.api.make_v1_request()
function call within
the khoros.objects.settings._get_v2_node_setting()
that was resulting in
IndexError
exceptions.
Fixed an issue in khoros.objects.settings._get_v2_node_setting()
resulting in
an IndexError
exception if the setting field is not found, and made changes
to return a None
value in that situation.
Fixes in the documentation.
A minor fix was made to the docstring in the khoros.objects.settings.define_node_setting()
function
to correct a Sphinx parsing issue. The function itself was not changed.
Release Date: 2020-12-26
Additions to the Khoros Core Object.
Defined the version
variable within the khoros.core.Khoros
core object to make it
easy to determine the current version of the package after having instantiated said object.
Added Khoros
to the __all__
dictionary in the primary __init__.py
file.
Changes to the Khoros Core Object.
Renamed the _settings
dictionary (private) to be core_settings
(public) in the core object
to avoid warning messages being displayed in PyCharm and other IDEs as reported in Issue
#26.
Renamed the settings
argument in the __init__
method for the khoros.core.Khoros
object to be defined_settings
to avoid conflicting with the khoros.core.Khoros.Settings()
method.
Made some minor PEP8 compliance-related adjustments in the khoros.core
module.
Changes to the primary modules.
_settings
to core_settings
.Changes to the supporting modules.
Updated the khoros.errors.translations.translation_enabled()
function to change _settings
to core_settings
.
Release Date: 2020-12-23
Created the dev-requirements.txt
to indicate which packages may be required for contributors,
whereas the requirements.txt
file now only contains the absolute necessities to use the package.
Additions to the Khoros Core Object.
khoros.core.Khoros.Settings
class with the following methods:Added the khoros.core.Khoros._import_settings_class()
method.
Additions to the primary modules.
khoros.objects.settings
module with the following functions:khoros.objects.settings._get_v1_node_setting()
khoros.objects.settings._get_v2_node_setting()
khoros.objects.settings._validate_node_type()
Added the khoros.objects.settings
module to the __init__.py
file for the
khoros.objects
module.
Added the new khoros.liql.get_returned_items()
function.
Added the new khoros.api.encode_payload_values()
function.
Additions to the supporting modules.
Updated setup.py
to enable support for Python v3.8.x and v3.9.x now that compatibility testing
has been performed and no issues have been identified.
Updated the Development Status classifier in setup.py
to be 5 - Production/Stable
.
Added some additional Topic classifiers in setup.py
.
Significantly cleaned up the requirements.txt
file to only include the absolute necessities.
Updated requirements.txt
to replace ==
with >=
to be less strict on dependency versions
as long as they meet a minimum version requirement.
Made a minor adjustment to the README.md
file relating to documentation.
Updated the docs/conf.py
file to require Sphinx version 3.4.0.
Re-added the Sphinx-related dependencies to requirements.txt
to allow ReadTheDocs builds
to be successful.
Changes to the Khoros Core Object.
Changes to the primary modules.
Changes to the supporting modules.
Moved the exceptions within the Base Object Exceptions section of khoros.errors.exceptions
into a new section entitled Node Exceptions.
status_code
and message
as arguments:Updated the khoros.errors.exceptions.SessionAuthenticationError
exception to optionally accept
message
as an argument.
Updated the khoros.utils.core_utils.encode_query_string()
function to support
API v1 calls using JSON payloads.
Updated the function khoros.utils.core_utils.convert_single_value_to_tuple()
to be
more PEP8 compliant.
Fixes in the Khoros Core Object.
Fixed an argument mismatch issue in the khoros.core.Khoros.parse_v2_response()
and
khoros.core.Khoros.Message.parse_v2_response()
(deprecated) methods.
Updated the methods below to pass the query parameters in the message body to avoid exceeding
the URI limit and receiving responses with 413
or 414
status codes.
Fixes in the primary modules.
Added a missing docstring for the khoros.api.payload_request_with_retries()
function.
Updated the function khoros.api.make_v1_request()
to pass the query parameters in the message
body to avoid exceeding the URI limit and receiving responses with 413
or 414
status codes.
Fixed an issue where v1 GET requests were not appending the restapi.response_format=json
query
string when a JSON response has been requested.
Fixes in the supporting modules.
Updated the default message in the khoros.errors.exceptions.TooManyResultsError
exception to be
appropriate as it was inadvertently using the same message leveraged in the
khoros.errors.exceptions.OperatorMismatchError
exception.
Release Date: 2020-11-02
Fixes to the Khoros Core Object.
Additions to the primary modules.
Fixed issues in the function khoros.api.post_request_with_retries()
to address the bug
#20.
Release Date: 2020-10-28
Additions to the Khoros Core Object.
Added the khoros.get()
method to perform simple GET requests that leverage the core
object authorization headers where necessary.
Added the khoros.post()
method to perform simple POST requests that leverage the core
object authorization headers where necessary.
Added the khoros.put()
method to perform simple PUT requests that leverage the core
object authorization headers where necessary.
Additions to the primary modules.
Added the khoros.api.payload_request_with_retries()
function to act as a “master function” for
khoros.api.post_request_with_retries()
and khoros.api.put_request_with_retries()
.
Added the khoros.api._is_plaintext_payload()
function.
Additions to the documentation.
Added missing sections to the Core Object Methods page.
Changes to the primary modules.
text/plain
payloads and introduced the content_type
parameter in the following functions:khoros.api._api_request_with_payload()
Updated the khoros.api.post_request_with_retries()
and
khoros.api.put_request_with_retries()
functions to leverage the new
khoros.api.payload_request_with_retries()
function.
Release Date: 2020-10-19
Additions to the Khoros Core Object.
khoros.core.Khoros.V1
inner class with the following methods:Added the khoros.core.Khoros._import_v1_class()
and accompanying method call.
Additions to the primary modules.
Added the khoros.api.get_platform_version()
Added the khoros.api._normalize_base_url()
Additions to the supporting modules.
khoros.utils.log_utils
module with the following functions, classes and methods:khoros.utils.log_utils._apply_defaults()
khoros.utils.log_utils._get_log_levels_from_dict()
khoros.utils.log_utils._set_logging_level()
khoros.utils.log_utils._add_handlers()
khoros.utils.log_utils._add_file_handler()
khoros.utils.log_utils._add_stream_handler()
khoros.utils.log_utils._add_split_stream_handlers()
khoros.utils.log_utils._add_syslog_handler()
Added a logging
section to the examples/helper.yml
file to indicate how logging can be configured.
Added the khoros.utils.core_utils.encode_base64()
function.
Added the khoros.utils.version.log_current_version()
function.
Added the changelog-1.1.0-thru-2.5.2.rst file and embedded it into this Change Log page to have less content per RST document.
Added Return to Top links at the bottom of each version section.
Changes to the Khoros Core Object.
Replaced the basic logging
initialization with a call to the
khoros.utils.log_utils.initialize_logging()
function.
Changes to the primary modules.
Updated the khoros.api.make_v1_request()
function to make the query_params
argument optional.
Updated the khoros.api.make_v1_request()
function to allow full query strings to be
passed within the endpoint
argument.
Changes to the supporting modules.
khoros.utils.version
module:Initialized a logger at the beginning of the module.
Added a debug log entry to the khoros.utils.versions.get_full_version()
which reports
the current version of the library.
Reduced the khoros.utils.version.latest_version()
function to a single return statement.
Added error handling and logging in the khoros.utils.version.get_latest_stable()
function
to avoid an exception if PyPI cannot be queried successfully.
Updated the khoros.utils.version.warn_when_not_latest()
function to use logging for the
warning rather than the warnings
module.
Updated the Sphinx configuration file (conf.py
) to suppress the duplicate label
warnings.
Added version 3.0.x to the SECURITY.md
file under Supported.
Changed the pyYAML version in requirements.txt
to be
5.3.1
rather than 5.3
in order to avoid the CI build failure in GitHub Actions.
Deprecations in the Khoros Core Object.
Deprecated the khoros.core.Khoros.perform_v1_search()
method as it has been replaced
by the khoros.core.Khoros.V1.search()
method.
Release Date: 2020-07-06
Additions to the Khoros Core Object.
Added the khoros.core.Khoros.Message.update()
method.
Added the translate_errors
default setting to the core object.
Additions to the primary modules.
khoros.objects.messages
module:khoros.objects.messages._verify_message_id()
khoros.objects.messages._add_moderation_status_to_payload()
khoros.objects.tags
module with the following functions:Added the khoros.objects.attachments._structure_attachments_to_add()
function.
Introduced the ability for error messages to be translated where possible to be more relevant
within the khoros.api.parse_v2_response()
, khoros.api.deliver_v2_response()
and khoros.api._get_v2_return_values()
functions, and added the optional
khoros_object
or _khoros_object
argument to facilitate this.
Additions to the supporting modules.
Added the khoros.errors.handlers.verify_core_object_present()
function.
khoros.errors.translations
module with the following functions:Added the khoros.errors.translations
module to the __all__
special variable
and imported it by default within the khoros.errors
(__init__.py
) module.
khoros.utils.tests.test_tags
module with the following functions:khoros.utils.tests.test_tags.test_message_structure_one_tag()
khoros.utils.tests.test_tags.test_message_structure_two_tags()
khoros.utils.tests.test_tags.test_message_structure_one_string_tag_ignore()
khoros.utils.tests.test_tags.test_message_structure_two_string_tags_ignore()
khoros.utils.tests.test_tags.test_message_structure_str_int()
khoros.utils.tests.test_tags.test_message_structure_str_int_ignore()
khoros.utils.tests.test_messages
module with the following functions:khoros.utils.tests.test_messages.test_construct_only_subject()
khoros.utils.tests.test_messages.test_construct_with_node_id()
khoros.utils.tests.test_messages.test_construct_with_node_url()
khoros.utils.tests.test_messages.test_construct_with_one_str_tag()
khoros.utils.tests.test_messages.test_construct_with_one_int_tag()
khoros.utils.tests.test_messages.test_construct_with_str_iter_int_tags()
khoros.utils.tests.test_messages.test_construct_with_str_iter_int_tags_ignore()
khoros.utils.tests.test_messages.test_construct_with_tag_iterables()
Added the khoros.utils.core_utils.remove_tld()
function.
Added the khoros.utils.tests.test_core_utils.test_remove_tld()
function.
Added the khoros.utils.core_utils.merge_and_dedup()
function.
Added the khoros.utils.tests.test_core_utils.test_merge_and_dedup()
function.
Additions to the documentation.
Added the khoros.objects.tags
module to the Primary Modules page.
Added the khoros.errors.translations
module to the Supporting Modules page.
Added the khoros.utils.tests.test_tags
module to the Supporting Modules page.
Added the khoros.utils.tests.test_messages
module to the Supporting Modules page.
Added a reference to the KHOROS_TRANSLATE_ERRORS
environment variable and added a new
Roadmap section to both the Introduction page and the
README.md
file.
Created the currently in-progress Working with Messages page, per Enhancement #1.
Added the file v2_message_attachment_update_payload.json
to the
examples/example_output
directory.
Additions to the Khoros Core Object.
Introduced the ignore_non_string_tags
, return_status
, return_error_messages
and
split_errors
arguments in the khoros.core.Khoros.Message.create()
method, and
changed the default value of the full_response
, return_id
, return_url
,
return_api_url
and return_http_code
arguments to None
rather than False
.
Added support for the translate_errors
Helper setting and any other future top-level
setting within the khoros.core.Khoros._parse_helper_settings()
method.
Changes to the primary modules.
khoros.objects.messages.update()
function.khoros.objects.messages.structure_payload()
Updated the if statement in khoros.objects.messages._verify_required_fields()
to leverage
the isinstance()
function.
Added the return_status
, return_error_messages
and split_errors
arguments
to the khoros.objects.messages.create()
function, and changed the default value
of the full_response
, return_id
, return_url
, return_api_url`` and
return_http_code
arguments to None
rather than False
.
Changes to the supporting modules.
Updated the khoros.utils.helper.get_helper_settings()
function to capture the
translate_errors
value when defined in the configuration file.
Refactored the khoros.utils.helper._get_construct_info()
function to leverage the
khoros.utils.helper._collect_values()
function.
Changes to the documentation.
Updated the Supported Versions chart in the Security Policy.
Made a very minor formatting change on the Introduction page.
Added the Working with Messages page to the master Table of Contents.
Added a link to the PyPI package page in the first paragraph of the index page.
Changed the intersphinx inventory URL for the built-in Python 3 modules from
https://docs.python.org/ to https://docs.python.org/3/ in the
docs/conf.py
file.
Updated the examples/helper.yml
file to include the translate_errors
setting.
Added the KHOROS_TRANSLATE_ERRORS
environment variable to the
examples/custom_env_variables.yml
and examples/custom_env_variables.json
files.
Release Date: 2020-06-25
Additions to the documentation.
Added the LGTM Grade to the README.md
file.
examples/example_output/
directory.v2_message_attachment_create_payload.json
v2_message_attachment_create_success.json
Changes to the documentation.
Added the Khoros Core Object page amd moved the documentation for the khoros
(__init__.py
)
module and the khoros.core
module to the new page from the Primary Modules page.
Added the new Khoros Core Object page to the Python SDK for Khoros Communities page.
Added navigational sentences at the bottom of the Primary Modules, Supporting Modules and Khoros Core Object pages.
Fixes in the primary modules.
Fixed the “Exception objects instantiated but not raised” issue reported in GitHub. (Issue #2)
Release Date: 2020-06-18
Added the v2_error_not_authorized.json file to the examples/example_output directory.
Changes to the primary modules.
Added the default_content_type
argument to the khoros.api.define_headers()
function.
Fixes to the primary modules.
Updated the khoros.api._normalize_headers()
function to ensure that
authentication/authorization tokens would not be altered.
Release Date: 2020-06-18
Additions to the primary modules.
Added the khoros.api._normalize_headers()
function to normalize the HTTP headers.
Additions to the supporting modules.
khoros.utils.tests.resources
module with the following functions:Added the khoros.utils.tests.test_http_headers
module for unit testing.
Additions to the documentation.
Added a section to the Primary Modules page for the khoros.objects.archives
module.
Changes to the primary modules.
Included a function call for khoros.api._normalize_headers()
in khoros.api.define_headers()
.
Changes to the supporting modules.
khoros.utils.tests.resources
module:Release Date: 2020-06-17
Additions to the supporting modules.
Added the khoros.utils.tests.test_grouphub_creation
module for unit testing with pytest
.
Changes to the primary modules.
Added the debug_mode
Boolean argument (False
by default) to the __init__
method
for the khoros.core.Khoros
class which populates within the _settings
protected
dictionary.
Added dist.old/
to the .gitignore
file in the root directory of the repository.
Fixes to the primary modules.
Fixed how the payload in khoros.structures.grouphubs.structure_payload()
is initially
defined to avoid a TypeError
exception from being raised during the
khoros.structures.grouphubs._structure_simple_string_fields()
function call.
Release Date: 2020-06-17
Fixes to the primary modules.
Fixed some bad logic in the khoros.structures.grouphubs.structure_payload()
that was raising
false positive exceptions.
Fixes to the documentation.
Changed the data type for membership_type
from dict
to str
in the docstring for the
khoros.structures.grouphubs.create()
, khoros.structures.grouphubs.structure_payload()
and khoros.structures.grouphubs._structure_membership_type()
functions.
Release Date: 2020-06-17
Fixes to the primary modules.
Removed some print debugging found in the khoros.api.make_v1_request()
function.
Fixed a syntax error with raising the khoros.errors.exceptions.CurrentlyUnsupportedError
exception
class within the khoros.api.make_v1_request()
function.
Added several API v1 output examples in the examples/example_output
directory.
Release Date: 2020-06-12
Additions to the primary modules.
khoros.objects.archives
module with the following functions:khoros.objects.archives._valid_entries_type()
khoros.objects.archives._convert_entries_to_dict()
khoros.objects.archives._format_single_archive_entry()
Added the khoros.structures.base.structure_exists()
function.
Added the khoros.structures.boards.board_exists()
function.
Added the khoros.structures.categories.category_exists()
function.
Added the khoros.structures.grouphubs.grouphub_exists()
function.
Added the khoros.structures.nodes.node_exists()
function.
Changes to the primary modules.
Added the khoros.objects.archives
module to the __all__
special variable in the
khoros.objects
__init__
module and configured it to be imported by default.
Added several additional keys and values to the structure_types_to_tables
dictionary in the
khoros.structures.base.Mapping
class.
Release Date: 2020-05-31
Additions to the primary modules.
khoros.core.Khoros.GroupHub
inner class with the following methods:Added the khoros.core.Khoros._import_grouphub_class()
and its accompanying method call.
Added the khoros.structures.grouphubs
module to the __all__
special variable in the
khoros.structures
__init__
module and configured the module to import by default.
Added the khoros.structures.boards.get_board_id()
function.
Added the khoros.core.Khoros.Board.structure_payload()
and
khoros.core.Khoros.Board.get_board_id()
methods.
Added the khoros.api.format_avatar_payload()
function.
Added the khoros.api.combine_json_and_avatar_payload()
function.
khoros.structures.grouphubs
module with the following functions:khoros.structures.grouphubs._create_group_hub_with_avatar()
khoros.structures.grouphubs._create_group_hub_without_avatar()
khoros.structures.grouphubs._structure_simple_string_fields()
khoros.structures.grouphubs._structure_membership_type()
khoros.structures.grouphubs._structure_discussion_styles()
khoros.structures.grouphubs._structure_parent_category()
khoros.structures.grouphubs.refresh_enabled_discussion_styles()
khoros.structures.grouphubs._remove_disabled_discussion_styles()
khoros.structures.grouphubs._verify_group_hub_id()
Added the khoros.structures.categories.get_total_count()
function to replace the deprecated
khoros.structures.categories.get_total_category_count()
function.
Added the khoros.core.Khoros.Category.get_total_count()
method to replace the deprecated
khoros.core.Khoros.Category.get_total_category_count()
method.
Additions to the supporting modules.
khoros.utils.tests.test_board_creation
unit test module with the following functions:khoros.utils.tests.test_board_creation.set_package_path()
khoros.utils.tests.test_board_creation.import_boards_module()
khoros.utils.tests.test_board_creation.import_exceptions_module()
khoros.utils.tests.test_board_creation.initialize_khoros_object()
khoros.utils.tests.test_board_creation.get_required_fields()
khoros.utils.tests.test_board_creation.get_dict_for_required_fields()
khoros.utils.tests.test_board_creation.test_required_fields()
khoros.utils.tests.test_board_creation.test_valid_board_types()
khoros.utils.tests.test_board_creation.test_invalid_board_type()
Added the khoros.errors.exceptions.InvalidPayloadValueError
exception class.
Added the khoros.utils.helper._get_discussion_styles()
function.
Additions to the documentation.
Added the khoros.structures.grouphubs
module to the Primary Modules page.
Added the khoros.utils.tests.test_board_creation
module to the
Supporting Modules page.
Added a docstring for khoros.utils.core_utils._is_zero_length()
.
Added the discussion_styles
field to the example helper file on the Introduction page.
Added the helper.yml
file in the examples/
directory of the repository using the syntax found on
the Introduction page of the documentation.
Added the discussion_styles
list to the examples/helper.yml
file.
Changes to the primary modules.
Renamed the khoros.structures.base._get_node_id()
function to be
khoros.structures.base.get_structure_id()
and converted it from a private to public function.
Added the gh-p
and ct-p
entries in the node_url_identifiers
list within the
khoros.structures.base.Mapping
class.
Refactored the khoros.structures.categories.get_category_id()
function to leverage the
khoros.structures.base.get_structure_id()
function.
Changes to the supporting modules.
Updated the khoros.utils.helper.get_helper_settings()
function to capture the enabled discussion
styles via the khoros.utils.helper._get_discussion_styles()
function.
Updated the khoros.core.Khoros
class to define the enabled discussion styles even if a helper
configuration file is not supplied.
Changes to the documentation.
Added a caution message to the docstring for khoros.structures.boards.create()
.
Deprecated the khoros.structures.categories.get_total_category_count()
function as it has been
replaced with the khoros.structures.categories.get_total_count()
function.
Deprecated the khoros.core.Khoros.Category.get_total_category_count()
method as it has been
replaced with the khoros.core.Khoros.Category.get_total_count()
method.
Release Date: 2020-05-25
Additions to the primary modules.
Added the private function khoros.api._get_v2_return_values()
to address possible
KeyError
exceptions in the khoros.api.deliver_v2_results()
function.
Additions to the documentation.
Added the Working with Boards document as a tutorial for managing boards.
Changes to the primary modules.
Removed the assert
function call from the khoros.core.Khoros._populate_construct_settings()
method.
Updated the khoros.api.parse_v2_response()
function so that the http_code
value returns as an integer rather than a string.
Replaced the return_developer_message
argument with return_error_messages
in the
khoros.api.parse_v2_response()
, khoros.api.deliver_v2_results()
,
khoros.structures.boards.create()
and khoros.core.Khoros.Board.create()
functions.
Updated the khoros.api.parse_v2_response()
function to merge the message
and
developer_message
response values into the error_msg
field in the dictionary, and included
the split_errors
argument which determines if they should be split within a tuple or consolidated
into a single string separated by a hyphen. (e.g. Invalid query syntax - An invalid value was passed...
)
Included the split_errors
argument in the khoros.api.deliver_v2_results()
,
khoros.structures.boards.create()
and khoros.core.Khoros.Board.create()
functions.
Changes to the supporting modules.
Renamed the khoros.utils.core_utils.__is_zero_length()
function to be
khoros.utils.core_utils._is_zero_length()
instead.
Renamed the khoros.utils.core_utils.__structure_query_string()
function to be
khoros.utils.core_utils._structure_query_string()
instead.
Changes to the documentation.
Added the Working with Boards page to the Python SDK for Khoros Communities home page.
Release Date: 2020-05-20
Additions to the primary modules.
Added the khoros.studio
module with the khoros.studio.base
sub-module.
khoros.core.Khoros.Studio
subclass with the following functions:Added the khoros.core.Khoros._import_studio_class()
function and associated function call.
Additions to the supporting modules.
Added the khoros.utils.core_utils.run_cmd()
function.
Added the khoros.utils.core_utils.decode_binary()
function.
Additions to the documentation.
Added the khoros.core.Khoros.Board
subclass to the primary modules page.
Added the khoros.studio
module to the primary modules page.
Changes to the documentation.
Swapped the Objects Module (khoros.objects) section with the Structures Module (khoros.structures) section on the primary modules page.
Release Date: 2020-05-18
Additions to the primary modules.
khoros.api
module:khoros.api._api_request_without_payload()
khoros.api._report_failed_attempt()
khoros.api._raise_exception_for_repeated_timeouts()
khoros.api._attempt_json_conversion()
khoros.objects.users
module:khoros.structures.boards
module with the following functions:khoros.structures.boards._structure_id_and_title()
khoros.structures.boards._structure_discussion_style()
khoros.structures.boards._structure_parent_category()
khoros.structures.boards._structure_simple_fields()
khoros.structures.boards._structure_label_settings()
khoros.structures.boards._structure_blog_settings()
khoros.structures.boards._structure_contest_settings()
khoros.structures.boards._warn_about_ignored_settings()
Added the khoros.structures.categories.create()
function.
Added khoros.core.Khoros.Category.create()
method.
Added the khoros.core.Khoros.User.get_ids_from_login_list()
method.
Added the khoros.core.Khoros.Board
class with the
khoros.core.Khoros.Board.create()
method.
Added the khoros.core.Khoros._import_board_class()
method and accompanying method call.
Additions to the supporting modules.
Added the khoros.utils.core_utils.convert_dict_id_values_to_strings()
function.
Added the khoros.utils.core_utils.extract_key_values_from_dict_list()
function.
Added the khoros.utils.core_utils.convert_list_values()
function.
khoros.utils.tests.test_core_utils
module with the following functions:khoros.utils.tests.test_core_utils.test_query_string_encoding()
khoros.utils.tests.test_core_utils._check_type_and_items()
Additions to the documentation.
Added the khoros.structures.boards
module to the primary modules page.
Added the khoros.utils.tests.test_core_utils
module to the
supporting modules page.
Added a docstring to the khoros.api._get_json_query_string()
function.
Changes to the primary modules.
Updated the khoros.api.post_request_with_retries()
, khoros.api.put_request_with_retries()
and
khoros.api._api_request_with_payload()
functions to perform the API requests even if no JSON payload is
provided, and to leverage the new khoros.api._report_failed_attempt()
and
khoros.api._raise_exception_for_repeated_timeouts()
functions.
Updated the khoros.api.get_request_with_retries()
function to leverage the new
khoros.api._report_failed_attempt()
and khoros.api._raise_exception_for_repeated_timeouts()
functions.
Updated the khoros.api.get_request_with_retries()
, khoros.api.post_request_with_retries()
and
khoros.api.put_request_with_retries()
functions to utilize the
khoros.api._attempt_json_conversion()
function.
Updated the khoros.objects.messages.create()
to leverage the khoros.api.parse_v2_response()
function.
Added the khoros.structures.boards
module to the __all__
special variable in the
khoros.structures
(i.e. __init__.py
) module and imported it by default.
Deprecations in the primary modules.
Deprecated the khoros.core.Khoros.Message.parse_v2_response()
function as it was replaced with the
khoros.core.Khoros.parse_v2_response()
function which is a bit more generalized.
Deprecated the khoros.objects.messages.parse_v2_response()
function as it was replaced with the
khoros.api.parse_v2_response()
function which is a bit more generalized.
Release Date: 2020-05-11
Additions to the primary modules.
khoros.objects.messages
module:khoros.objects.messages._get_required_user_mention_data()
khoros.objects.roles
module with the following functions:Added the khoros.objects.messages.MESSAGE_SEO_URLS
dictionary constant.
khoros.core.Khoros
class:Added the from . import roles
statement to the khoros.objects
module and added roles
to the __all__
special variable.
khoros.core.Khoros.Role
inner class with the following methods:Added the method khoros.core.Khoros._import_role_class()
to the core object and
added the method call in the initialization method.
Additions to the supporting modules.
Added the khoros.utils.tests.test_mentions
unit test module.
Additions to the documentation.
Added khoros.utils.tests.test_mentions
to the Support Modules page.
Added khoros.objects.roles
to the primary modules page.
Added khoros.core.Khoros.Role
to the primary modules page.
Added a code coverage badge to the README.md file.
Added a code coverage section to the pythonpackage.yml
file.
Added the codecov.yml file for coverage reports.
Changed the PyPI Development Status in setup.py
to be Development Status :: 4 - Beta
.
Fixes to the primary modules.
Fixed how and when values are cast to integers in khoros.objects.users._get_user_identifier()
.
Added missing method calls for the khoros.core.Khoros._import_message_class()
and
khoros.core.Khoros._import_album_class()
methods in the initialization method for the
khoros.core.Khoros
class.
Release Date: 2020-05-08
Additions to the primary modules.
Added the khoros.api.encode_multipart_data()
function.
khoros.objects.messages
module:khoros.objects.messages._verify_required_fields()
khoros.objects.messages._confirm_field_supplied()
khoros.objects.attachments
module with the following functions:khoros.objects.attachments._format_single_file()
khoros.objects.attachments._format_multiple_files()
khoros.objects.albums
module with the following functions:khoros.objects.albums._null_to_blank()
khoros.core.Khoros
class:khoros.core.Khoros._import_album_class()
khoros.core.Khoros._import_message_class()
khoros.core.Khoros.Album
inner class with the following methods:khoros.core.Khoros.Message
inner class with the following methods:Added an import statement for khoros.objects.albums
to the khoros.objects
module.
Additions to the supporting modules.
Added the khoros.utils.core_utils.convert_single_value_to_tuple()
function.
Added the khoros.utils.core_utils.convert_string_to_tuple()
function.
Added the khoros.utils.core_utils.is_numeric()
function.
Added the khoros.errors.exceptions.DataMismatchError
exception class.
Additions to the documentation.
Added the Utilizing environment variables section to the Introduction page.
Updated the README.md file to match the Introduction page.
Added the khoros.objects.messages
module to the primary modules page.
Added the khoros.objects.albums
module to the primary modules page.
Added the khoros.objects.attachments
module to the primary modules page.
Added the khoros.core.Khoros.Album
class to the primary modules page.
Added the khoros.core.Khoros.Message
class to the primary modules page.
Added the SECURITY.md and CODE_OF_CONDUCT.md files to the source repository.
Added requests-toolbelt==0.9.1
to the requirements.txt
file.
Changes to the primary modules.
Updated the khoros.core.Khoros
class so that environment variables are ignored if a Helper
configuration file is supplied when instantiating the core object.
multipart/form-data
API calls in functions below.khoros.api._api_request_with_payload()
Added the associated exception type (e.g. ValueError
) to the failure messages in
khoros.api.get_request_with_retries()
and khoros.api._api_request_with_payload()
.
Updated the khoros.api.get_request_with_retries()
to use the
khoros.errors.exceptions.APIConnectionError
exception class rather than ConnectionError
.
Updated the khoros.api.get_request_with_retries()
and khoros.api._api_request_with_payload()
functions to only retry if relevant exception classes are raised in the try/except.
Added functionality to khoros.api.post_request_with_retries()
and
khoros.api.put_request_with_retries()
to display an error but still return the API response if unable
to convert the response to JSON format when requested.
Renamed the khoros.api.__api_request_with_payload()
function to be
khoros.api._api_request_with_payload()
instead.
Replaced print()
statements in the khoros.api.get_request_with_retries()
and
khoros.api._api_request_with_payload()
functions with khoros.errors.handlers.eprint()
function calls.
Added the multipart
Boolean argument to the khoros.api.define_headers()
which will remove the
Content-Type
header key and value if the API call is for a multipart/form-data
query.
Added the allow_exceptions
argument (True
by default) to the khoros.liql.perform_query()
function to allow the khoros.errors.exceptions.GETRequestError
exception to be disabled if an
error response is returned.
Updated the error/exception message in the khoros.liql.perform_query()
to be more specific.
Changes to the documentation.
Added a full docstring to the khoros.api._api_request_with_payload()
function.
Fixes to the primary modules.
Removed the Aurea reference from the failure message in khoros.api._api_request_with_payload
.
Fixes to the supporting modules.
Changed “v1” to “v2” in the full error message string within the
khoros.errors.handlers._get_v2_error_from_json()
function.
Release Date: 2020-04-26
Additions to the primary modules.
khoros.core.Khoros
object.Added the khoros.core.Khoros._parse_env_settings()
method to parse the environmental variables.
Added the khoros.core.Khoros._session_auth_credentials_defined()
method to automatically set the
auth_type
value in the _settings
attribute to be session_auth
if a session authentication username
and password have been defined.
Additions to the supporting modules.
khoros.utils.environment
module with the following functions and constants:khoros.utils.environment._env_variable_exists()
khoros.utils.environment._get_env_variable_value()
khoros.utils.environment._update_env_list()
khoros.utils.environment._update_env_mapping()
khoros.utils.environment._import_custom_names_file()
khoros.utils.environment.ENV_VARIABLE_NAMES
Added the khoros.utils.core_utils.get_file_type()
function.
Added the khoros.errors.exceptions.UnknownFileTypeError
exception class.
Added the khoros.utils.tests.test_helper_file
unit test module.
New additions to the example files for the library.
Added the custom_env_variables.json
file.
Added the custom_env_variables.yml
file.
Additions to the documentation.
Added the khoros.utils.environment
module to the supporting modules page.
Added the khoros.utils.tests.test_helper_file
module to the
supporting modules page.
Added the encrypted YAML Helper configuration file khoros_helper.yml.gpg
in the
khoros/utils/tests/
directory for use with pytest
.
Added the shell script decrypt_helper.sh
in the .github/scripts/
directory per
GitHub guidelines.
Updated the pythonpackage.yml
workflow for GitHub Actions to decrypt the helper configuration file (YAML)
and utilize environment variables.
Changes to the primary modules.
Made an adjustment to the khoros.core.Khoros
object class so that any values explicitly passed via
the settings
argument will overwrite any existing settings defined by default values and/or
environmental variables.
Added khoros.structures.base
to the __all__
special variable in khoros.structures
.
Added khoros.objects.messages
to the __all__
special variable in khoros.objects
and added
an import
statement to import the module by default.
Removed khoros.objects.base
from the __all__
special variable in khoros.objects
and removed
the import
statement to prevent the module from being imported by default.
Changes to the supporting modules.
Replaced the yaml.load()
function call with yaml.safe_load()
in
khoros.utils.helper.import_yaml_file()
as it is a better security practice.
Introduced support for JSON formatted helper configuration files in khoros.utils.helper
.
Removed the extra preceding underscore in private functions within khoros.utils.helper
.
Changes to the documentation.
Added :special-members: __init__
to the khoros
and khoros.core
modules to display the
docstrings for the __init__
method in the khoros.core.Khoros
object class.
Replaced NoneType
with None
in function and method docstrings to use proper syntax and to comply with
PEP 287.
Release Date: 2020-04-23
Additions to the primary modules.
Added the khoros.liql.get_total_count()
function.
Added the khoros.core.Khoros.get_total_count()
method within the core Khoros object.
Added the khoros.structures
module.
khoros.structures.base
module with the following functions and class:khoros.structures.base._check_url_for_identifier()
khoros.structures.categories
module with the following functions:khoros.structures.communities
module with the following functions:khoros.structures.communities._check_for_multiple_tenants()
khoros.structures.communities.get_permitted_attachment_types()
khoros.structures.communities.email_confirmation_required_to_post()
khoros.structures.communities.get_ooyala_player_branding_id()
khoros.structures.communities.top_level_categories_enabled()
khoros.structures.communities.show_community_node_in_breadcrumb()
khoros.structures.communities.show_breadcrumb_at_top_level()
khoros.structures.communities.top_level_categories_on_community_page()
khoros.structures.nodes
module with the following functions and classes:khoros.structures.nodes._get_node_type_identifier()
khoros.core.Khoros.Category
inner class with the following methods:khoros.core.Khoros.Community
inner class with the following methods:khoros.core.Khoros.Community.get_permitted_attachment_types()
khoros.core.Khoros.Community.email_confirmation_required_to_post()
khoros.core.Khoros.Community.get_ooyala_player_branding_id()
khoros.core.Khoros.Community.show_community_node_in_breadcrumb()
khoros.core.Khoros.Community.top_level_categories_on_community_page()
khoros.core.Khoros.Node
inner class:Added the khoros.core.Khoros._import_category_class()
method and accompanying method call.
Added the khoros.core.Khoros._import_community_class()
method and accompanying method call.
Added the khoros.liql.COLLECTIONS
constant.
Additions to the supporting modules.
Added the khoros.utils.core_utils.display_warning()
function.
Additions to the documentation.
Added the khoros.structures
module and its submodules to the primary modules page.
Changes to the primary modules.
Updated the khoros.objects
to import all submodules by default.
Moved the khoros.objects.base.get_node_id()
function to the khoros.structures.nodes
module
and added a DeprecationWarning
.
Moved the khoros.objects.base.get_node_type_from_url()
function to the khoros.structures.nodes
module and added a DeprecationWarning
.
Moved the khoros.objects.base.__get_node_type_identifier()
function to the khoros.structures.nodes
module and added a DeprecationWarning
.
Moved the khoros.objects.base.Mapping
class to the khoros.structures.nodes
module and added
a DeprecationWarning
.
Added the khoros.structures.nodes.Mapping.avatar_size_mapping
dictionary.
Fixes to the primary modules.
Removed some print debugging that hadn’t been removed in the khoros.api.query_successful()
function.
Fixes to the documentation.
Fixed the module name in the header docstring for the khoros.objects
module.
Fixed a typo in the docstring for the khoros.objects.users.query_users_table_by_id()
function.
Additions to the supporting modules.
Fixed the khoros.utils.tests.test_node_id_extract
to use the new khoros.structures.nodes
module.
Release Date: 2020-04-10
Additions to the primary modules.
Added the khoros.core.Khoros.perform_v1_search()
method.
Added the khoros.core.Khoros._import_node_class()
and khoros.core.Khoros._import_user_class()
methods within the core khoros.Khoros
object class.
Added the khoros.core.Khoros.Node
inner class within the core khoros.Khoros
object class.
khoros.core.Khoros
object class:Added the khoros.core.Khoros.User
inner class within the core khoros.Khoros
object class.
khoros.core.Khoros
object class:Added the khoros.api.query_successful()
function.
Added the khoros.api.get_results_count()
function.
Added the khoros.api.get_items_list()
function.
Added the khoros.api.perform_v1_search()
function.
Added the khoros.api.delete()
function.
Added the new khoros.objects
module to contain sub-modules for the various API objects.
khoros.objects.base
module with the following functions and classes:khoros.objects.base.__get_node_type_identifier()
khoros.objects.users
module with the following functions:khoros.objects.users._get_where_clause_for_user_id()
khoros.objects.users._get_where_clause_for_username()
khoros.objects.users._get_where_clause_for_email()
khoros.objects.users._get_user_identifier()
khoros.objects.users._get_count()
khoros.objects.users._get_sum_weight()
Additions to the supporting modules.
Added the khoros.utils.core_utils.decode_html_entities()
function.
khoros.errors.handlers
module.khoros.errors.handlers._get_v1_error_from_json()
khoros.errors.handlers._get_v2_error_from_json()
khoros.errors.handlers._import_exception_classes()
khoros.errors.handlers._exceptions_module_imported()
khoros.errors.handlers._import_exceptions_module()
khoros.utils.tests.test_node_id_extract
module with the following functions:Additions to the documentation.
Added the Core Object Subclasses to the primary modules page.
Added the khoros.objects
module and the khoros.objects.base
and khoros.objects.users
sub-modules to the primary modules page.
Added the khoros.utils.tests.test_node_id_extract
module to the
supporting modules page.
Added PyCharm Python Security Scanner to the pythonpackage.yml file.
Changes to the primary modules.
Updated the khoros.liql.perform_query()
function to allow a raw LiQL query to be passed rather than only
pre-formatted query URLs.
Updated the khoros.liql.perform_query()
function to include an optional verify_success
argument which
verifies that the API query was successful and raises the khoros.errors.exceptions.GETRequestError
exception if not.
Removed the unnecessary import requests
line in the khoros.liql
module.
Renamed the khoros.core.Khoros.__connect_with_session_key()
method to be
khoros.core.Khoros._connect_with_session_key()
(single underscore prefix) instead.
Renamed the khoros.core.Khoros.__define_url_settings()
method to be
khoros.core.Khoros._define_url_settings()
(single underscore prefix) instead.
Renamed the khoros.core.Khoros.__parse_helper_settings()
method to be
khoros.core.Khoros._parse_helper_settings()
(single underscore prefix) instead.
Renamed the khoros.core.Khoros.__populate_auth_settings()
method to be
khoros.core.Khoros._populate_auth_settings()
(single underscore prefix) instead.
Renamed the khoros.core.Khoros.__populate_construct_settings()
method to be
khoros.core.Khoros._populate_construct_settings()
(single underscore prefix) instead.
Renamed the khoros.core.Khoros.__populate_core_settings()
method to be
khoros.core.Khoros._populate_core_settings()
(single underscore prefix) instead.
Renamed the khoros.core.Khoros.__validate_base_url()
method to be
khoros.core.Khoros._validate_base_url()
(single underscore prefix) instead.
Changes to the supporting modules.
Updated the khoros.errors.exceptions.CurrentlyUnsupportedError
exception class to allow the respective
feature to be passed as a string argument for it to be explicitly referenced in the exception message.
Updated the khoros.errors.handlers.get_error_from_html()
function to have a second v1
argument, which
is False
by default.
Changes to the documentation.
Updated the docstring in khoros.api.query_successful()
indicating the API response should be in JSON format.
Changed the Development Status in setup.py
to be 3 - Alpha.
Fixes in the primary modules.
Updated the khoros.liql.format_query()
function to properly encode the double-quote ("
) character and
several other special characters.
Fixes in the documentation.
Fixed two bad hyperlinks in the README.md file.
Fixed the docstrings in the khoros.errors.exceptions.InvalidOperatorError
exception class to be accurate.
Fixed the docstrings in the khoros.errors.exceptions.OperatorMismatchError
exception class to be accurate.
Release Date: 2020-03-22
Additions to the primary modules.
Added the khoros.core.Khoros.signout()
method.
Added the khoros.auth.get_oauth_authorization_url()
function.
Added the khoros.auth.get_oauth_callback_url_from_user()
function.
Added the khoros.auth.invalidate_session()
function.
khoros.api
module with the following functions:khoros.api.__api_request_with_payload()
Additions to the supporting modules.
Added the khoros.utils.core_utils.get_random_string()
function.
Added the khoros.utils.core_utils.__structure_query_string()
function.
Additions to the documentation.
Added the khoros.api
module to the primary modules page.
Changes to the primary modules.
Updated the core khoros.core.Khoros
class to include the active
Boolean flag in self.auth
.
Updated the khoros.liql.perform_query()
function to utilize the
khoros.api.get_request_with_retries()
function.
Made minor docstring adjustments to the khoros.liql.perform_query()
function.
Changes to the supporting modules.
Added the no_encode
argument and associated functionality to the
khoros.utils.core_utils.encode_query_string()
function.
Release Date: 2020-03-17
Additions to the primary modules.
Added the khoros.utils.version.warn_when_not_latest()
function call to the main khoros
module.
Additions to the supporting modules.
Added the khoros.utils.version.get_latest_stable()
function.
Added the khoros.utils.version.latest_version()
function.
Added the khoros.utils.version.warn_when_not_latest()
function.
Additions to the documentation.
Added the Changelog and Usage sections to the README.md file.
Created the Change Log page and populated it with the v1.1.0 changes.
Created the primary modules and supporting modules pages.