Skip to content

Tags: gqylpy/gqylpy-dict

Tags

1.2.6

Toggle 1.2.6's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #14 from 2018-11-27/master

1.2.6

1.2.5

Toggle 1.2.5's commit message
1.2.5

1.Optimize `MasqueradeClass` and fix one of the errors.
2.Add support for Python12.

1.优化 `MasqueradeClass`,并修正其中的一处错误。
2.增加对 Python12 支持。

1.2.4

Toggle 1.2.4's commit message
1.2.4

1.There are no functional changes in this update.
2.Update `MasqueradeClass`, almost redesign.
3.Adjust the comment information for `gdict.__init__` and move it to `__new__`.
4.Update the readme file.

1.此次更新没有任何功能上的变化。
2.更新 `MasqueradeClass`,几乎重新设计。
3.调整 `gdict.__init__` 的注释信息,将其移动到 `__new__` 下。
4.更新自述文件。

1.2.3

Toggle 1.2.3's commit message
1.2.3

1. Fix issue where a new `gdict` instance was still created even when the value being assigned as a key-value pair was already an instance of `gdict`. #10
2. Fix issue where calling `copy.copy` did not result in a deep copy. #11
3. Add extensive and detailed functionality descriptions to the `gdict` class.
4. Adjust the functionality description of the `deepcopy` method.
5. Refactor (improve) the method of obtaining version information in `setup` by directly extracting it from `package.__doc__`, rather than opening a file.
6. Adjust the classification information of the open-source library on PyPi.
7. Update the README file to provide detailed explanations of the functionality and usage of `gdict`.

1.修复问题:设置键值对时,如果值已经是 `gdict` 实例,仍然会创建新的 `gdict`实例。#10
2.修复问题:调用 `copy.copy` 得到深度拷贝的结果。#11
3.对 `gdict` 类添加了大量的详细的功能描述。
4.调整 `deepcopy` 方法的功能描述。
5.重构(改进) `setup` 中获得版本信息的方案,直接从 `package.__doc__` 中提取,而不再打开文件。
6.调整在PyPi上的开源库分类信息。
7.更新自述文件,详细地讲解 `gdict` 的功能和用法。

1.2.2

Toggle 1.2.2's commit message
1.2.2

1.Continue optimize the `gdict` core (initialization process), remove `set` and `frozenset` from the judgment logic of a recursive container instance and now recurse only `list` and `tuple`.
2.Improve `MasqueradeClass`, masquerade the attribute `__qualname__`.
3.Disable the `__slots__` attribute, Because ChatGPT-3.5 argues that the use of `__slots__` in `gdict` is not very necessary and may cause some small performance loss.

1.继续优化 `gdict` 核心(初始化过程),递归容器实例的判断逻辑中移除 `set` 和 `frozenset`,现在仅递归 `list` 和 `tuple`。
2.改进 `MasqueradeClass`,隐藏属性 `__qualname__`。
3.停用 `__slots__` 属性来优化性能,因为 ChatGPT-3.5 认为 `gdict` 中使用 `__slots__` 不是很必要,反而可能会造成一些微小的性能损失。

1.2.1

Toggle 1.2.1's commit message
1.2.1

1.Optimize logical blocks for real code imports.
2.Optimize the `gdict` core again (initialization process). (A new `gdict` instance is created whether or not it is already a `gdict` instance.)
3.Perfectly solves the problem of not being able to `pickle` some instances when calling `copy.deepcopy` in the `gdict` instances (add new method `deepcopy`, incomplete deep copy, only copy internal container class instances). issue: #9.
4.Directly modified the parameter name of the `deep` series methods `keypath` -> `deepkey` (no warning, no compatibility processing, rest assured there will be few compatibility issues).
5.In `deepget`, no longer use the `eval` function to try to evaluate for special `key` (because `eval` is too slow), use the `elif` continuous statement instead.
6.Update the readme file, and open source library description information on PyPi.

1.优化真实代码导入的逻辑块。
2.再度优化 `gdict` 核心(初始化过程),无论是否已经是 `gdict` 实例,都会创建新的 `gdict` 实例。
3.在 `gdict` 实例中完美解决了在调用 `copy.deepcopy` 时个别实例无法被 `pickle` 的问题(新增方法 `deepcopy`,不完全深度拷贝,仅拷贝内部的容器类实例)。问题: https://github.com/gqylpy/gqylpy-dict/issues/9。
4.直接修改了 `deep` 系列方法的参数名称 `keypath` -> `deepkey`(没有警告,也没有做任何兼容,放心几乎不会有兼容性问题)。
5.在 `deepget` 中,针对特殊的 `key` 不再使用 `eval` 函数尝试取值(因为 `eval` 太慢了),改为使用 `elif` 连续语句。
6.更新自述文件和PyPi上的开源库简述信息。

1.2

Toggle 1.2's commit message
1.2

1.The unique value (the global variable `unique`) no longer pursue individuality, but adopt a safe generic scheme.
2.Optimized `MasqueradeClass`, including optimization of exception output, optimization of equality judgment method, and solved the problem that cannot `copy` and `deepcopy` correctly after masquerading hash value.
3.Optimized the `gdict` core (initialization process), including optimizing the data merge scheme, changing the data decomposition scheme (using the original type of data), and no longer shredding iterators.
4.Fixed an issue in `update` that could cause data clutter.
5.The methods `deepget` and `deepset` support manipulating the built-in `dict` instances, and are therefore about to remove the methods `getdeep` and `setdeep`, using the former uniformly.
6.Optimized methods `copy`, `deepget`, `deepset`, `deepsetdefault`.
7.Parameter annotation and standardization greatly optimized.

1.唯一值(全局变量 `unique`)不再追求个性,而是采用稳妥的通用方案。
2.优化了 `MasqueradeClass`,包括优化了异常输出,优化了相等性判断方法,并解决了伪装哈希值后无法正确 `copy` 和 `deepcopy` 的问题。
3.优化了 `gdict` 核心(初始化过程),包括优化了数据合并方案,改变数据分解方案(使用数据的原始类型),并不再分解迭代器。
4.修复了 `update` 中可能导致数据混乱的问题。
5.方法 `deepget` 和 `deepset` 支持操作内置 `dict` 实例,并因此即将移除方法 `getdeep` 和 `setdeep`,统一使用前者。
6.优化方法 `copy`, `deepget`, `deepset`, `deepsetdefault`。
7.参数注解及规范性大幅优化。

1.1.4

Toggle 1.1.4's commit message
1.1.4

1.Improved several annotation semantics.
2.Fixed an incorrect type annotation.

1.1.3

Toggle 1.1.3's commit message
1.1.3

1.Fix the deep copy bug.

1.1.2

Toggle 1.1.2's commit message
1.1.2

1.Fixed the bug that cannot be serialized by `yaml`.