Comments (7)
This is @JBGreisman 's department, but I recall that Pandas has been mucking around with custom dtypes
lately and breaking everything. I would not be surprised if the very specific versioning requirement was just self defense.
from reciprocalspaceship.
This was mostly done in self defense as @kmdalton suggested. There are two places that rs
has historically run into issues during pandas updates:
The first is with attributes for our subclassed DataFrame
(rs.DataSet
). In the olde days of this project, there were a few pandas operations that would lead to loss of the subclass , and therefore loss of cell
and spacegroup
attributes. That has largely stabilized in the last couple of years and hasn't caused trouble lately.
The second place is with our ExtensionDtypes
that are used to implement all the MTZ datatypes. Pandas adjusts that API a bit more regularly, and also sometimes changes behavior in small ways during patch releases. I had set a maximal version to protect against short-term issues, but I think that was the wrong approach to this problem.
I think it makes the most sense to have a GitHub Action that tests the build on a set schedule to detect possible issues with any latest pandas version. This sort of "detect early" strategy is a bit more flexible, and should allow us to keep up to date with pandas in a more seamless manner.
from reciprocalspaceship.
To do list:
- Extend supported version to latest pandas (1.3.2)
- Add renovate to repo to automatically test against dependency updates
from reciprocalspaceship.
We use renovate to track and test against dependency updates, eg. DiamondLightSource/python-workflows#65
from reciprocalspaceship.
awesome -- good to hear. I had been looking into that as a possible solution for this
from reciprocalspaceship.
I tested renovate
in my personal fork and it seems accomplish this task exactly as I hoped. I tested it by reverting the pandas version to "pandas >= 1.2.0, <= 1.3.0", and renovate
filed a PR to change the line to read "pandas >= 1.2.0, <= 1.3.2".
from reciprocalspaceship.
I'm closing this issue because renovate
has now been added to the repo, and appears to be working as intended
from reciprocalspaceship.
Related Issues (20)
- Remove support for `DataSet.append()` due to pandas deprecation
- Converting Structure Factors to Intensities HOT 7
- support ccp4 convention in add_rfree function HOT 3
- pandas version issue? HOT 4
- `rs.utils.copy_rfree()` should take `rfree_key` argument HOT 1
- module 'reciprocalspaceship.algorithms' has no attribute 'compute_intensity_from_structurefactor' HOT 2
- About the methods naming like "compute_xxx" and "label_xxx" HOT 2
- Missing function call signature from Jedi-VIM autocomplete library HOT 3
- provide seed for reproducible creation of Rfree flags HOT 2
- Resolving indexing ambiguities when comparing datasets HOT 12
- Add `sample_rate` or `resolution_cutoff` options for `to_reciprocalgrid` HOT 5
- rs.DataSet.assign_resolution_bins ought to return bin edges HOT 1
- Cannot unstack_anomalous with other columns in index
- groupby apply drops cell and spacegroup HOT 2
- `stack_anomalous` inside `groupby` breaks `as_index=False` HOT 1
- Unstack anomalous taking into account Careless repeats HOT 10
- rs.utils.asu.in_asu() does not use the 'anomalous ASU' for stacked anomalous data. HOT 1
- function for cif file IO and possible support for multi-dataset files HOT 3
- `hkl_to_asu` does not annotate M/ISYM field correctly HOT 2
- support for read_precognition() for hkl without anomalous columns HOT 6
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 reciprocalspaceship.