Comments (6)
To follow up, this PR #55314 is the breaking change.
from pandas.
As outlined in the PR, deepcopy was introduced to prevent unwanted side effects when attrs are used and propagated.
The failure mode of using a class without __deepcopy__
is transparent, just like the fix required (implement deepcopy) to be able to use attrs with the custom class.
On the other hand, side effects from not deepcopy'ing attrs in the background are intransparent to the end user. So in the end using deepcopy is probably preferable.
from pandas.
@achapkowski Maybe try df.attrs["metadata"] = {**InsensitiveDict(data)}
.
from pandas.
@achapkowski Since you are making a custom implementation of a dictionary, you can implement a __deepcopy__
like this:
def __deepcopy__(self, memo):
result = InsensitiveDict(deepcopy({**self}))
memo[id(self)] = result
return result
from pandas.
I know I can implement deepcopy, but the issue is if I use any 3rd party library, like this class from requests, I have to monkey patch it.
from pandas.
How is it problematic? From what I read it's a problem with geopandas not pandas. This is a major regression because most classes and packages do not implement deepcopy.
from pandas.
Related Issues (20)
- BUG: HOT 3
- BUG: .mode(dropna=False) doesn't work with nullable integers HOT 1
- BUG: iterrows() on an awkward array with equal-length rows results in a ValueError HOT 3
- BUG: float64 convert to int64 get confuse result HOT 1
- QST: HOT 2
- BUG: `diff()` returns confusing output when dealing with negative timestamp deltas HOT 1
- ENH: add "right" argument to "qcut", like "cut" has HOT 2
- BUG: default value for dtype_backend is not applied by default HOT 5
- DOC: add detailed comments pandas/tests/arithmatic/datetime/ line no: 750, test_dti_cmp_tdi_tzawareness HOT 1
- BUG: Refactor test_dti_cmp_tdi_tzawareness function to reduce redundancy pandas/tests/arithmetic/test_datetime64.py HOT 2
- BUILD: HOT 1
- BUG: AttributeError: 'Engine' object has no attribute 'cursor' HOT 5
- BUG: FutureWarning when following documentation HOT 4
- BUG: Column of dtype Categorical in DataFrame encounters error when taking a row that includes nan in the column HOT 5
- DOC: Searching DataFrame.eval( blocks me from the documentation HOT 4
- PERF: groupby is significantly slower for `DatetimeIndex` with timezone HOT 2
- Potential performance regression with "CLN: enforce deprecation of frequencies deprecated for offsets"
- PERF: 100% CPU utilization with matplotlib (macosx)
- BUG: `interval_range` ignores type of `start` (regression from pandas 2.2.2)
- Inconsistent "index"/"name" property referring to both rows and columns based on iloc selection HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pandas.