Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PR04 errors fix #25157

Merged
merged 17 commits into from Feb 11, 2019

Conversation

@mwoss
Copy link
Contributor

commented Feb 5, 2019

  • closes #25105
  • passes git diff upstream/master -u -- "*.py" | flake8 --diff
  • get rid of the errors in the code base
  • update the code_check.sh script to take into account the PR04 type of errors
@pep8speaks

This comment has been minimized.

Copy link

commented Feb 5, 2019

Hello @mwoss! Thanks for updating the PR.

Cheers ! There are no PEP8 issues in this Pull Request. 🍻

Comment last updated on February 11, 2019 at 01:06 Hours UTC
mwoss added 2 commits Feb 6, 2019
@codecov

This comment has been minimized.

Copy link

commented Feb 6, 2019

Codecov Report

Merging #25157 into master will decrease coverage by 49.5%.
The diff coverage is n/a.

Impacted file tree graph

@@             Coverage Diff             @@
##           master   #25157       +/-   ##
===========================================
- Coverage   92.37%   42.86%   -49.51%     
===========================================
  Files         166      166               
  Lines       52408    52408               
===========================================
- Hits        48412    22467    -25945     
- Misses       3996    29941    +25945
Flag Coverage Δ
#multiple ?
#single 42.86% <ø> (ø) ⬆️
Impacted Files Coverage Δ
pandas/io/formats/style.py 17.49% <ø> (-79.2%) ⬇️
pandas/core/algorithms.py 50.47% <ø> (-44.31%) ⬇️
pandas/io/parquet.py 20.19% <ø> (-64.43%) ⬇️
pandas/core/panel.py 42.02% <ø> (-55.89%) ⬇️
pandas/core/groupby/groupby.py 24.5% <ø> (-72.3%) ⬇️
pandas/core/resample.py 23.27% <ø> (-73.97%) ⬇️
pandas/core/groupby/grouper.py 18.31% <ø> (-79.86%) ⬇️
pandas/core/generic.py 39.89% <ø> (-56.74%) ⬇️
pandas/io/formats/latex.py 0% <0%> (-100%) ⬇️
pandas/core/categorical.py 0% <0%> (-100%) ⬇️
... and 131 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e3b0950...ae369ec. Read the comment docs.

@codecov

This comment has been minimized.

Copy link

commented Feb 6, 2019

Codecov Report

Merging #25157 into master will decrease coverage by 0.22%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #25157      +/-   ##
==========================================
- Coverage   92.15%   91.93%   -0.23%     
==========================================
  Files         166      166              
  Lines       52294    52187     -107     
==========================================
- Hits        48194    47978     -216     
- Misses       4100     4209     +109
Flag Coverage Δ
#multiple 90.48% <ø> (-0.15%) ⬇️
#single 42.14% <ø> (-0.13%) ⬇️
Impacted Files Coverage Δ
pandas/io/formats/style.py 96.69% <ø> (ø) ⬆️
pandas/core/algorithms.py 94.77% <ø> (ø) ⬆️
pandas/io/parquet.py 84.61% <ø> (ø) ⬆️
pandas/core/panel.py 80.26% <ø> (-13.61%) ⬇️
pandas/core/groupby/groupby.py 96.8% <ø> (ø) ⬆️
pandas/core/resample.py 97.22% <ø> (ø) ⬆️
pandas/core/groupby/grouper.py 98.16% <ø> (ø) ⬆️
pandas/core/generic.py 94.68% <ø> (-1.71%) ⬇️
... and 18 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1d1b14c...bffd111. Read the comment docs.

@jreback jreback added the Docs label Feb 6, 2019

Returns
-------
----------

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Why was this changed?

This comment has been minimized.

Copy link
@mwoss

mwoss Feb 6, 2019

Author Contributor

It wasn't nacessary change, but I thought matching separator in every section will looks good.

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Please revert this - the length needs to match the title name for proper sphinx rendering

@@ -271,7 +271,7 @@ def read_parquet(path, engine='auto', columns=None, **kwargs):
``io.parquet.engine`` is used. The default ``io.parquet.engine``
behavior is to try 'pyarrow', falling back to 'fastparquet' if
'pyarrow' is unavailable.
kwargs are passed to the engine
kwargs: Any additional kwargs are passed to the engine

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Need a space after kwargs here I think

This comment has been minimized.

Copy link
@mwoss

mwoss Feb 6, 2019

Author Contributor

Fixed

@@ -543,7 +543,7 @@ def validate_pep8(self):
application = flake8.main.application.Application()
application.initialize(["--quiet"])

with tempfile.NamedTemporaryFile(mode='w') as file:
with tempfile.NamedTemporaryFile(mode='w', encoding="utf-8") as file:

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Why are you changing this?

This comment has been minimized.

Copy link
@mwoss

mwoss Feb 6, 2019

Author Contributor

Without strict encoding I had a problem with creating validation_errors json.

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

This shouldn't be required here so please remove. If you are having some sort of issue without this please open as a separate issue

Returns
-------
A specification for a groupby instruction
Note

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

What does this have to do with the PR04 error? Changes should really be limited to one thing at a time

This comment has been minimized.

Copy link
@mwoss

mwoss Feb 6, 2019

Author Contributor

Line

additional kwargs to control time-like groupers (when freq is passed)

was treated as parameter, so I had to move it somewhere else.

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Kwargs is a parameter so it belongs there

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 7, 2019

Member

Get rid of this section and just document kwargs as a parameter like everywhere else

y : same as input
asdadasd

This comment has been minimized.

Copy link
@WillAyd

This comment has been minimized.

Copy link
@mwoss

mwoss Feb 6, 2019

Author Contributor

My bad, deleted.

mwoss added 3 commits Feb 6, 2019
@WillAyd
Copy link
Member

left a comment

Please also post the output of the validation script for any docstrings changed here; I think some of the changes here are actually creating new issues so please be careful

Returns
-------
----------

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Please revert this - the length needs to match the title name for proper sphinx rendering

closed : closed end of interval; 'left' or 'right'
label : interval boundary to use for labeling; 'left' or 'right'
convention : {'start', 'end', 'e', 's'}
If grouper is PeriodIndex
base, loffset
base : int, default 0
loffset : string / DateOffset / timedelta object

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member
Suggested change
loffset : string / DateOffset / timedelta object
loffset : string, DateOffset, or timedelta
Returns
-------
A specification for a groupby instruction
Note

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Kwargs is a parameter so it belongs there

@@ -648,13 +648,14 @@ def transpose(self, *args, **kwargs):
copy : boolean, default False
Make a copy of the underlying data. Mixed-dtype data will
always result in a copy
kwargs : Additional keyword arguments will be passed to the function

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

There is a standard for args and kwargs so here you just want **kwargs on this line (no type require) and move the description down one line

@@ -1127,8 +1127,7 @@ class Timedelta(_Timedelta):
'ms', 'milliseconds', 'millisecond', 'milli', 'millis', 'L',
'us', 'microseconds', 'microsecond', 'micro', 'micros', 'U',
'ns', 'nanoseconds', 'nano', 'nanos', 'nanosecond', 'N'}
days, seconds, microseconds,
milliseconds, minutes, hours, weeks : numeric, optional
days,seconds,microseconds,milliseconds,minutes,hours,weeks : numeric, optional:

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Does this pass LINTing? May or may not be an issue just not aware of combining parameters like this into one line anywhere else

This comment has been minimized.

Copy link
@mwoss

mwoss Feb 6, 2019

Author Contributor

Checked, there is one (only line to long atm), but I have no idea how to properly refactor that doc so PR04 error won't appear again

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Hmm OK. Technically the signature for this class only accepts **kwargs, so I would use that as the type and then move everything about days, seconds, etc... down into the descption

@@ -1008,7 +1008,7 @@ def apply(self, func, axis='major', **kwargs):
DataFrames of items & major axis will be passed
axis : {'items', 'minor', 'major'}, or {0, 1, 2}, or a tuple with two
axes
Additional keyword arguments will be passed as keywords to the function
kwargs : Additional keyword arguments will be passed to the function

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

See above comment on kwargs

@@ -42,7 +42,7 @@
axes_single_arg="{0, 1, 2, 'items', 'major_axis', 'minor_axis'}",
optional_mapper='', optional_axis='', optional_labels='')
_shared_doc_kwargs['args_transpose'] = (
"three positional arguments: each one of\n{ax_single}".format(
"{ax_single}\n\tthree positional arguments from given options".format(

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

How does this actually render? This doesn't appear to have a type so does this actually fix PR04?

This comment has been minimized.

Copy link
@mwoss

mwoss Feb 6, 2019

Author Contributor

Yes, it does fix PR04 error.

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Hmm OK - somewhat surprised by that since I don't know what the type is. Keep in mind that Panel is deprecated so any changes to this module will probably be stripped out in next release anyway. So don't put too much more effort into these if you don't have to

@@ -543,7 +543,7 @@ def validate_pep8(self):
application = flake8.main.application.Application()
application.initialize(["--quiet"])

with tempfile.NamedTemporaryFile(mode='w') as file:
with tempfile.NamedTemporaryFile(mode='w', encoding="utf-8") as file:

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

This shouldn't be required here so please remove. If you are having some sort of issue without this please open as a separate issue

@@ -271,7 +271,7 @@ def read_parquet(path, engine='auto', columns=None, **kwargs):
``io.parquet.engine`` is used. The default ``io.parquet.engine``
behavior is to try 'pyarrow', falling back to 'fastparquet' if
'pyarrow' is unavailable.
kwargs are passed to the engine
kwargs : Any additional kwargs are passed to the engine

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Same on kwargs

`**kwargs` : Any additional keyword arguments are passed through
to ``self.template.render``. This is useful when you need to provide
additional variables for a custom template.
kwargs : Any additional keyword arguments

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Same on kwargs

@@ -1127,8 +1127,7 @@ class Timedelta(_Timedelta):
'ms', 'milliseconds', 'millisecond', 'milli', 'millis', 'L',
'us', 'microseconds', 'microsecond', 'micro', 'micros', 'U',
'ns', 'nanoseconds', 'nano', 'nanos', 'nanosecond', 'N'}
days, seconds, microseconds,
milliseconds, minutes, hours, weeks : numeric, optional
days,seconds,microseconds,milliseconds,minutes,hours,weeks : numeric, optional:

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Hmm OK. Technically the signature for this class only accepts **kwargs, so I would use that as the type and then move everything about days, seconds, etc... down into the descption

@@ -42,7 +42,7 @@
axes_single_arg="{0, 1, 2, 'items', 'major_axis', 'minor_axis'}",
optional_mapper='', optional_axis='', optional_labels='')
_shared_doc_kwargs['args_transpose'] = (
"three positional arguments: each one of\n{ax_single}".format(
"{ax_single}\n\tthree positional arguments from given options".format(

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 6, 2019

Member

Hmm OK - somewhat surprised by that since I don't know what the type is. Keep in mind that Panel is deprecated so any changes to this module will probably be stripped out in next release anyway. So don't put too much more effort into these if you don't have to

@WillAyd
Copy link
Member

left a comment

Can you post the output of the doctoring validation script every time you push going forward? I'm not sure these fixes are actually resolving issues without creating new ones, so having that output would be helpful

pandas/_libs/tslibs/timedeltas.pyx Outdated Show resolved Hide resolved
pandas/core/generic.py Outdated Show resolved Hide resolved
pandas/core/groupby/groupby.py Show resolved Hide resolved
Returns
-------
A specification for a groupby instruction
Note

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 7, 2019

Member

Get rid of this section and just document kwargs as a parameter like everywhere else

pandas/io/formats/style.py Outdated Show resolved Hide resolved
pandas/io/parquet.py Outdated Show resolved Hide resolved
@mwoss

This comment has been minimized.

Copy link
Contributor Author

commented Feb 7, 2019

Should I post output as csv file, raw json or markdown table?

@WillAyd

This comment has been minimized.

Copy link
Member

commented Feb 7, 2019

@mwoss

This comment has been minimized.

Copy link
Contributor Author

commented Feb 7, 2019

name errors_delimited
pandas.Timedelta GL02,GL03,PR01,PR02,PR06,PR06,PR07,PR09,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07
pandas.Timedelta.max GL02,GL03,PR02,PR06,PR06,PR07,PR09,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07
pandas.Timedelta.min GL02,GL03,PR02,PR06,PR06,PR07,PR09,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07
pandas.factorize PR07,EX02
pandas.Grouper SS03,SS06,PR01,PR02,PR06,PR08,PR09,PR08,PR09,PR06,PR07,PR06,PR08,PR09,PR07,PR07,PR09,PR07,PR06,PR07,EX02
pandas.core.groupby.GroupBy.rank SS05,PR08,PR09,PR06,PR09,PR08,PR09,PR06,PR09,RT03,SA04,SA05,SA04,SA05,SA04,SA05
pandas.core.groupby.DataFrameGroupBy.rank SS05,PR08,PR09,PR06,PR09,PR08,PR09,PR06,PR09,RT03,SA04,SA05,SA04,SA05,SA04,SA05
pandas.read_parquet PR01,PR02,PR06,PR09,RT03
pandas.Panel.apply SS05,PR01,PR02,PR09,PR08,PR09,RT02,RT03,EX02
pandas.Panel.transpose L05,SS03,PR01,PR02,PR06,PR09,RT02,RT03,EX02
pandas.core.resample.Resampler.std PR01,PR06,RT01
pandas.io.formats.style.Styler.render PR01,PR02,RT02,RT04,RT05
@mwoss

This comment has been minimized.

Copy link
Contributor Author

commented Feb 7, 2019

I'll fix rest of the errors tomorrow

mwoss added 2 commits Feb 7, 2019
@mwoss

This comment has been minimized.

Copy link
Contributor Author

commented Feb 7, 2019

Validation errors script output after update.

name errors_delimited
pandas.Timedelta GL02,GL03,PR01,PR02,PR06,PR06,PR07,PR09,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07
pandas.Timedelta.max GL02,GL03,PR02,PR06,PR06,PR07,PR09,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07
pandas.Timedelta.min GL02,GL03,PR02,PR06,PR06,PR07,PR09,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07,PR10,PR07
pandas.factorize PR07,EX02
pandas.Grouper SS03,SS06,PR01,PR02,PR06,PR08,PR09,PR08,PR09,PR06,PR07,PR06,PR08,PR09,PR06,EX02
pandas.core.groupby.GroupBy.rank PR08,PR09,PR06,PR09,PR08,PR09,PR06,PR09,RT03,SA04,SA05,SA04,SA05,SA04,SA05
pandas.core.groupby.DataFrameGroupBy.rank PR08,PR09,PR06,PR09,PR08,PR09,PR06,PR09,RT03,SA04,SA05,SA04,SA05,SA04,SA05
pandas.read_parquet PR03,PR06,PR09,RT03
pandas.Panel.apply PR01,PR02,PR09,PR08,PR09,RT02,RT03,EX02
pandas.Panel.transpose GL05,SS03,PR01,PR02,PR06,PR09,RT02,RT03,EX02
pandas.core.resample.Resampler.std PR01,PR06,RT01
pandas.io.formats.style.Styler.render RT02,RT05
@WillAyd
Copy link
Member

left a comment

One comment then lgtm. @datapythonista do you mind taking a look?

@@ -543,7 +543,7 @@ def validate_pep8(self):
application = flake8.main.application.Application()
application.initialize(["--quiet"])

with tempfile.NamedTemporaryFile(mode='w') as file:
with tempfile.NamedTemporaryFile(mode='w', encoding='utf-8') as file:

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 8, 2019

Member

If you can revert this I think the rest looks good

This comment has been minimized.

Copy link
@mwoss

mwoss Feb 8, 2019

Author Contributor

Oh, i again commit this line. I should create github issue with coresponding PR for that.

mwoss added 2 commits Feb 8, 2019
closed : closed end of interval; 'left' or 'right'
Only when `freq` parameter is passed.

This comment has been minimized.

Copy link
@WillAyd

WillAyd Feb 8, 2019

Member

Sorry just one last pass at all of these where Only when freq... is the description - not sure that's the best way of going about this.

It looks like the description for these is where the type should go. Can you move the description down to the line below and add a type for this and the 3 other parameters sharing this description? Also would be nice to revert removal of previous line if it doesn't cause PR04 failures

This comment has been minimized.

Copy link
@mwoss

mwoss Feb 9, 2019

Author Contributor

What do you mean by sharing the description? Should I group those kwargs somehow?

This comment has been minimized.

Copy link
@mwoss

mwoss Feb 10, 2019

Author Contributor

I'll fix it in few hours. Sorry, busy weekend.

This comment has been minimized.

Copy link
@mwoss

mwoss Feb 10, 2019

Author Contributor

I have no idea how deal with line below (for all kwargs).

Additional kwargs to control time-like groupers (when freq is passed).

There is no description sharing functionality for Python docstrings.

@jreback jreback added this to the 0.25.0 milestone Feb 8, 2019

@jreback

This comment has been minimized.

Copy link
Contributor

commented Feb 9, 2019

@WillAyd merge when good

mwoss and others added 3 commits Feb 10, 2019
@WillAyd
Copy link
Member

left a comment

Just made one very minor tweak but otherwise lgtm. Ping on great and will merge

@mwoss

This comment has been minimized.

Copy link
Contributor Author

commented Feb 11, 2019

@WillAyd all green :)

@jreback jreback merged commit 147b923 into pandas-dev:master Feb 11, 2019

11 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
pandas-dev.pandas Build #20190211.4 succeeded
Details
pandas-dev.pandas (Checks_and_doc) Checks_and_doc succeeded
Details
pandas-dev.pandas (Linux py27_locale_slow_old_np) Linux py27_locale_slow_old_np succeeded
Details
pandas-dev.pandas (Linux py27_np_120) Linux py27_np_120 succeeded
Details
pandas-dev.pandas (Linux py36_locale_slow) Linux py36_locale_slow succeeded
Details
pandas-dev.pandas (Linux py37_locale) Linux py37_locale succeeded
Details
pandas-dev.pandas (Linux py37_np_dev) Linux py37_np_dev succeeded
Details
pandas-dev.pandas (Windows py27_np121) Windows py27_np121 succeeded
Details
pandas-dev.pandas (Windows py36_np14) Windows py36_np14 succeeded
Details
pandas-dev.pandas (macOS py35_np_120) macOS py35_np_120 succeeded
Details
@jreback

This comment has been minimized.

Copy link
Contributor

commented Feb 11, 2019

thanks @mwoss

thoo added a commit to thoo/pandas that referenced this pull request Feb 11, 2019
Merge remote-tracking branch 'upstream/master' into Rt05
* upstream/master:
  BUG: Fix exceptions when Series.interpolate's `order` parameter is missing or invalid (pandas-dev#25246)
  API: Ensure DatetimeTZDtype standardizes pytz timezones (pandas-dev#25254)
  Split Excel IO Into Sub-Directory (pandas-dev#25153)
  PR04 errors fix (pandas-dev#25157)
  DEPR: remove assert_panel_equal (pandas-dev#25238)
  BUG: pandas Timestamp tz_localize and tz_convert do not preserve `freq` attribute (pandas-dev#25247)
  Revert "BLD: prevent asv from calling sys.stdin.close() by using different launch method (pandas-dev#25237)" (pandas-dev#25253)
  REF/TST: resample/test_base.py (pandas-dev#25262)
  BUG: Duplicated returns boolean dataframe (pandas-dev#25234)
  CLN: Remove ipython 2.x compat (pandas-dev#25150)
  Refactor groupby group_add from tempita to fused types (pandas-dev#24954)
  CLN: For loops, boolean conditions, misc. (pandas-dev#25206)
  (Closes pandas-dev#25029) Removed extra bracket from cheatsheet code example. (pandas-dev#25032)
  BLD: prevent asv from calling sys.stdin.close() by using different launch method (pandas-dev#25237)
  BUG: Fix read_json orient='table' without index (pandas-dev#25170) (pandas-dev#25171)
  BUG: Fix regression in DataFrame.apply causing RecursionError (pandas-dev#25230)
  BUG-25061 fix printing indices with NaNs (pandas-dev#25202)
  DEPR: Add Deprecated warning for timedelta with passed units M and Y  (pandas-dev#23264)
  DEPR: Remove Panel-specific parts of io.pytables (pandas-dev#25233)
  DEPR: remove tm.makePanel and all usages (pandas-dev#25231)
Pingviinituutti added a commit to Pingviinituutti/pandas that referenced this pull request Feb 28, 2019
Pingviinituutti added a commit to Pingviinituutti/pandas that referenced this pull request Feb 28, 2019
the-nose-knows added a commit to the-nose-knows/pandas that referenced this pull request Mar 9, 2019
upstream sync (#1)
* ERR/TST: Add pytest idiom to dtypes/test_cast.py (pandas-dev#24847)

* fix MacPython pandas-wheels failue (pandas-dev#24851)

* DEPS: Bump pyarrow min version to 0.9.0 (pandas-dev#24854)

Closes pandas-devgh-24767

* DOC: Document AttributeError for accessor (pandas-dev#24855)

Closes pandas-dev#20579

* Start whatsnew for 0.24.1 and 0.25.0 (pandas-dev#24848)

* DEPR/API: Non-ns precision in Index constructors (pandas-dev#24806)

* BUG: Format mismatch doesn't coerce to NaT (pandas-dev#24815)

* BUG: Properly parse unicode usecols names in CSV (pandas-dev#24856)

* CLN: fix typo in asv eval.Query suite (pandas-dev#24865)

* BUG: DataFrame respects dtype with masked recarray (pandas-dev#24874)

* REF/CLN: Move private method (pandas-dev#24875)

* BUG : ValueError in case on NaN value in groupby columns (pandas-dev#24850)

* BUG: fix floating precision formatting in presence of inf (pandas-dev#24863)

* DOC: Creating top-level user guide section, and moving pages inside (pandas-dev#24677)

* DOC: Creating top-level development section, and moving pages inside (pandas-dev#24691)

* DOC: Creating top-level getting started section, and moving pages inside (pandas-dev#24678)

* DOC: Implementing redirect system, and adding user_guide redirects (pandas-dev#24715)

* DOC: Implementing redirect system, and adding user_guide redirects

* Using relative urls for the redirect

* Validating that no file is overwritten by a redirect

* Adding redirects for getting started and development sections

* DOC: fixups (pandas-dev#24888)

* Fixed heading on whatnew
* Remove empty scalars.rst

* CLN: fix typo in ctors.SeriesDtypesConstructors setup (pandas-dev#24894)

* DOC: No clean in sphinx_build (pandas-dev#24902)

Closes pandas-dev#24727

* BUG (output formatting): use fixed with for truncation column instead of inferring from last column (pandas-dev#24905)

* DOC: also redirect old whatsnew url (pandas-dev#24906)

* Revert BUG-24212 fix usage of Index.take in pd.merge (pandas-dev#24904)

* Revert BUG-24212 fix usage of Index.take in pd.merge

xref pandas-dev#24733
xref pandas-dev#24897

* test 0.23.4 output

* added note about buggy test

* DOC: Add experimental note to DatetimeArray and TimedeltaArray (pandas-dev#24882)

* DOC: Add experimental note to DatetimeArray and TimedeltaArray

* Disable M8 in nanops (pandas-dev#24907)

* Disable M8 in nanops

Closes pandas-dev#24752

* CLN: fix typo in asv benchmark of non_unique_sorted, which was not sorted (pandas-dev#24917)

* API/VIS: remove misc plotting methods from plot accessor (revert pandas-dev#23811) (pandas-dev#24912)

* DOC: some 0.24.0 whatsnew clean-up (pandas-dev#24911)

* DOC: Final reorganization of documentation pages (pandas-dev#24890)

* DOC: Final reorganization of documentation pages

* Move ecosystem to top level

* DOC: Adding redirects to API moved pages (pandas-dev#24909)

* DOC: Adding redirects to API moved pages

* DOC: Making home page links more compact and clearer (pandas-dev#24928)

* DOC: 0.24 release date (pandas-dev#24930)

* DOC: Adding version to the whatsnew section in the home page (pandas-dev#24929)

* API: Remove IntervalArray from top-level (pandas-dev#24926)

* RLS: 0.24.0

* DEV: Start 0.25 cycle

* DOC: State that we support scalars in to_numeric (pandas-dev#24944)

We support it and test it already.

xref pandas-devgh-24910.

* DOC: Minor what's new fix (pandas-dev#24933)

* TST: GH#23922 Add missing match params to pytest.raises (pandas-dev#24937)

* Add tests for NaT when performing dt.to_period (pandas-dev#24921)

* DOC: switch headline whatsnew to 0.25 (pandas-dev#24941)

* BUG-24212 fix regression in pandas-dev#24897 (pandas-dev#24916)

* CLN: reduce overhead in setup for categoricals benchmarks in asv (pandas-dev#24913)

* Excel Reader Refactor - Base Class Introduction (pandas-dev#24829)

* TST/REF: Add pytest idiom to test_numeric.py (pandas-dev#24946)

* BLD: silence npy_no_deprecated warnings with numpy>=1.16.0 (pandas-dev#24864)

* CLN: Refactor cython to use memory views (pandas-dev#24932)

* DOC: Clean sort_values and sort_index docstrings (pandas-dev#24843)

* STY: use pytest.raises context syntax (indexing) (pandas-dev#24960)

* Fixed itertuples usage in to_dict (pandas-dev#24965)

* Fixed itertuples usage in to_dict

Closes pandas-dev#24940
Closes pandas-dev#24939

* STY: use pytest.raises context manager (resample) (pandas-dev#24977)

* DOC: Document breaking change to read_csv (pandas-dev#24989)

* DEPR: Fixed warning for implicit registration (pandas-dev#24964)

*  STY: use pytest.raises context manager (indexes/datetimes) (pandas-dev#24995)

* DOC: move whatsnew note of pandas-dev#24916 (pandas-dev#24999)

* BUG: Fix broken links (pandas-dev#25002)

The previous location of contributing.rst file was
/doc/source/contributing.rst but has been moved to
/doc/source/development/contributing.rst

* fix for BUG: grouping with tz-aware: Values falls after last bin (pandas-dev#24973)

* REGR: Preserve order by default in Index.difference (pandas-dev#24967)

Closes pandas-dev#24959

* CLN: do not use .repeat asv setting for storing benchmark data (pandas-dev#25015)

* CLN: isort asv_bench/benchmark/algorithms.py (pandas-dev#24958)

* fix+test to_timedelta('NaT', box=False) (pandas-dev#24961)

* PERF: significant speedup in sparse init and ops by using numpy in check_integrity (pandas-dev#24985)

* BUG: Fixed merging on tz-aware (pandas-dev#25033)

* Test nested PandasArray (pandas-dev#24993)

* DOC: fix error in documentation pandas-dev#24981 (pandas-dev#25038)

* BUG: support dtypes in column_dtypes for to_records() (pandas-dev#24895)

* Makes example from docstring work (pandas-dev#25035)

* CLN: typo fixups (pandas-dev#25028)

* BUG: to_datetime(strs, utc=True) used previous UTC offset (pandas-dev#25020)

* BUG: Better handle larger numbers in to_numeric (pandas-dev#24956)

* BUG: Better handle larger numbers in to_numeric

* Warn about lossiness when passing really large
numbers that exceed (u)int64 ranges.

* Coerce negative numbers to float when requested
instead of crashing and returning object.

* Consistently parse numbers as integers / floats,
even if we know that the resulting container has
to be float. This is to ensure consistent error
behavior when inputs numbers are too large.

Closes pandas-devgh-24910.

* MAINT: Address comments

* BUG: avoid usage in_qtconsole for recent IPython versions (pandas-dev#25039)

* Drop IPython<4.0 compat

* Revert "Drop IPython<4.0 compat"

This reverts commit 0cb0452.

* update
a
* whatsnew

* REGR: fix read_sql delegation for queries on MySQL/pymysql (pandas-dev#25024)

* DOC: Start 0.24.2.rst (pandas-dev#25026)

[ci skip]

* REGR: rename_axis with None should remove axis name (pandas-dev#25069)

* clarified the documentation for DF.drop_duplicates (pandas-dev#25056)

* Clarification in docstring of Series.value_counts (pandas-dev#25062)

* ENH: Support fold argument in Timestamp.replace (pandas-dev#25046)

* CLN: to_pickle internals (pandas-dev#25044)

* Implement+Test Tick.__rtruediv__ (pandas-dev#24832)

* API: change Index set ops sort=True -> sort=None (pandas-dev#25063)

* BUG: to_clipboard text truncated for Python 3 on Windows for UTF-16 text (pandas-dev#25040)

* PERF: use new to_records() argument in to_stata() (pandas-dev#25045)

* DOC: Cleanup 0.24.1 whatsnew (pandas-dev#25084)

* Fix quotes position in pandas.core, typos and misspelled parameters. (pandas-dev#25093)

* CLN: Remove sentinel_factory() in favor of object() (pandas-dev#25074)

* TST: remove DST transition scenarios from tc pandas-dev#24689 (pandas-dev#24736)

* BLD: remove spellcheck from Makefile (pandas-dev#25111)

* DOC: small clean-up of 0.24.1 whatsnew (pandas-dev#25096)

* DOC: small doc fix to Series.repeat (pandas-dev#25115)

* TST: tests for categorical apply (pandas-dev#25095)

* CLN: use dtype in constructor (pandas-dev#25098)

* DOC: frame.py doctest fixing (pandas-dev#25097)

* DOC: 0.24.1 release (pandas-dev#25125)

[ci skip]

* Revert set_index inspection/error handling for 0.24.1 (pandas-dev#25085)

* DOC: Minor what's new fix (pandas-dev#24933)

* Backport PR pandas-dev#24916: BUG-24212 fix regression in pandas-dev#24897 (pandas-dev#24951)

* Revert "Backport PR pandas-dev#24916: BUG-24212 fix regression in pandas-dev#24897 (pandas-dev#24951)"

This reverts commit 84056c5.

* DOC/CLN: Timezone section in timeseries.rst (pandas-dev#24825)

* DOC: Improve timezone documentation in timeseries.rst

* edit some of the examples

* Address review

* DOC: Fix validation type error RT04 (pandas-dev#25107) (pandas-dev#25129)

* Reading a HDF5 created in py2 (pandas-dev#25058)

* BUG: Fixing regression in DataFrame.all and DataFrame.any with bool_only=True (pandas-dev#25102)

* Removal of return variable names (pandas-dev#25123)

* DOC: Improve docstring of Series.mul (pandas-dev#25136)

* TST/REF: collect DataFrame reduction tests (pandas-dev#24914)

* Fix validation error type `SS05` and check in CI  (pandas-dev#25133)

* Fixed tuple to List Conversion in Dataframe class (pandas-dev#25089)

* STY: use pytest.raises context manager (indexes/multi) (pandas-dev#25175)

* DOC: Updates to Timestamp document (pandas-dev#25163)

* BLD: pin cython language level to '2' (pandas-dev#25145)

Not explicitly pinning the language level has been producing future
warnings from cython.  The next release of cython is going to change
the default level to '3str' under which the pandas cython extensions
do not compile.

The long term solution is to update the cython files to the next
language level, but this is a stop-gap to keep pandas building.

* CLN: Use ABCs in set_index (pandas-dev#25128)

* DOC: update docstring for series.nunique (pandas-dev#25116)

* DEPR: remove PanelGroupBy, disable DataFrame.to_panel (pandas-dev#25047)

* BUG: DataFrame.merge(suffixes=) does not respect None (pandas-dev#24819)

* fix MacPython pandas-wheels failure (pandas-dev#25186)

* modernize compat imports (pandas-dev#25192)

* TST: follow-up to Test nested pandas array pandas-dev#24993 (pandas-dev#25155)

* revert changes to tests in pandas-devgh-24993

* Test nested PandasArray

* isort test_numpy.py

* change NP_VERSION_INFO

* use LooseVersion

* add _np_version_under1p16

* remove blank line from merge master

* add doctstrings to fixtures

* DOC/CLN: Fix errors in Series docstrings (pandas-dev#24945)

* REF: Add more pytest idiom to test_holiday.py (pandas-dev#25204)

* DOC: Fix validation type error SA05 (pandas-dev#25208)

Create check for SA05 errors in CI

* BUG: Fix Series.is_unique with single occurrence of NaN (pandas-dev#25182)

* REF: Remove many Panel tests (pandas-dev#25191)

* DOC: Fixes to docstrings and add PR10 (space before colon) to validation (pandas-dev#25109)

* DOC: exclude autogenerated c/cpp/html files from 'trailing whitespace' checks (pandas-dev#24549)

* STY: use pytest.raises context manager (indexes/period) (pandas-dev#25199)

* fix ci failures (pandas-dev#25225)

* DEPR: remove tm.makePanel and all usages (pandas-dev#25231)

* DEPR: Remove Panel-specific parts of io.pytables (pandas-dev#25233)

* DEPR: Add Deprecated warning for timedelta with passed units M and Y  (pandas-dev#23264)

* BUG-25061 fix printing indices with NaNs (pandas-dev#25202)

* BUG: Fix regression in DataFrame.apply causing RecursionError (pandas-dev#25230)

* BUG: Fix regression in DataFrame.apply causing RecursionError

* Add feedback from PR

* Add feedback after further code review

* Add feedback after further code review 2

* BUG: Fix read_json orient='table' without index (pandas-dev#25170) (pandas-dev#25171)

* BLD: prevent asv from calling sys.stdin.close() by using different launch method (pandas-dev#25237)

* (Closes pandas-dev#25029) Removed extra bracket from cheatsheet code example. (pandas-dev#25032)

* CLN: For loops, boolean conditions, misc. (pandas-dev#25206)

* Refactor groupby group_add from tempita to fused types (pandas-dev#24954)

* CLN: Remove ipython 2.x compat (pandas-dev#25150)

* CLN: Remove ipython 2.x compat

* trivial change to trigger asv

* Update v0.25.0.rst

* revert whatsnew

* BUG: Duplicated returns boolean dataframe (pandas-dev#25234)

* REF/TST: resample/test_base.py (pandas-dev#25262)

* Revert "BLD: prevent asv from calling sys.stdin.close() by using different launch method (pandas-dev#25237)" (pandas-dev#25253)

This reverts commit f67b7fd.

* BUG: pandas Timestamp tz_localize and tz_convert do not preserve `freq` attribute (pandas-dev#25247)

* DEPR: remove assert_panel_equal (pandas-dev#25238)

* PR04 errors fix (pandas-dev#25157)

* Split Excel IO Into Sub-Directory (pandas-dev#25153)

* API: Ensure DatetimeTZDtype standardizes pytz timezones (pandas-dev#25254)

* API: Ensure DatetimeTZDtype standardizes pytz timezones

* Add whatsnew

* BUG: Fix exceptions when Series.interpolate's `order` parameter is missing or invalid (pandas-dev#25246)

* BUG: raise accurate exception from Series.interpolate (pandas-dev#24014)

* Actually validate `order` before use in spline

* Remove unnecessary check and dead code

* Clean up comparison/tests based on feedback

* Include invalid order value in exception

* Check for NaN order in spline validation

* Add whatsnew entry for bug fix

* CLN: Make unit tests assert one error at a time

* CLN: break test into distinct test case

* PEP8 fix in test module

* CLN: Test fixture for interpolate methods

* BUG: DataFrame.join on tz-aware DatetimeIndex (pandas-dev#25260)

* REF: use _constructor and ABCFoo to avoid runtime imports (pandas-dev#25272)

* Refactor groupby group_prod, group_var, group_mean, group_ohlc (pandas-dev#25249)

*  Fix typo in Cheat sheet with regex (pandas-dev#25215)

* Edit parameter type in pandas.core.frame.py DataFrame.count (pandas-dev#25198)

* TST/CLN: remove test_slice_ints_with_floats_raises (pandas-dev#25277)

* Removed Panel class from HDF ASVs (pandas-dev#25281)

* DOC: Fix minor typo in docstring (pandas-dev#25285)

* DOC/CLN: Fix errors in DataFrame docstrings (pandas-dev#24952)

* Skipped broken Py2 / Windows test (pandas-dev#25323)

* Rt05 documentation error fix issue 25108 (pandas-dev#25309)

* Fix typos in docs (pandas-dev#25305)

* Doc: corrects spelling in generic.py (pandas-dev#25333)

* BUG: groupby.transform retains timezone information (pandas-dev#25264)

* Fixes Formatting Exception (pandas-dev#25088)

* Bug: OverflowError in resample.agg with tz data (pandas-dev#25297)

* DOC/CLN: Fix various docstring errors (pandas-dev#25295)

* COMPAT: alias .to_numpy() for timestamp and timedelta scalars (pandas-dev#25142)

* ENH: Support times with timezones in at_time (pandas-dev#25280)

* BUG: Fix passing of numeric_only argument for categorical reduce (pandas-dev#25304)

* TST: use a fixed seed to have the same uniques across python versions (pandas-dev#25346)

TST: add pytest-mock to handle mocker fixture

* TST: xfail excel styler tests, xref GH25351 (pandas-dev#25352)

* TST: xfail excel styler tests, xref GH25351

* CI: cleanup .c files for cpplint>1.4

* DOC: Correct doc mistake in combiner func (pandas-dev#25360)

Closes pandas-devgh-25359.

* DOC/BLD: fix --no-api option (pandas-dev#25209)

* DOC: modify typos in Contributing section (pandas-dev#25365)

* Remove spurious MultiIndex creation in `_set_axis_name` (pandas-dev#25371)

* Resovles pandas-dev#25370
* Introduced by pandas-dev#22969

* pandas-dev#23049: test for Fatal Stack Overflow stemming From Misuse of astype('category') (pandas-dev#25366)

* 9236: test for the DataFrame.groupby with MultiIndex having pd.NaT (pandas-dev#25310)

* [BUG] exception handling of MultiIndex.__contains__ too narrow (pandas-dev#25268)

* 14873: test for groupby.agg coercing booleans (pandas-dev#25327)

* BUG/ENH: Timestamp.strptime (pandas-dev#25124)

* BUG: constructor Timestamp.strptime() does not support %z.

* Add doc string to NaT and Timestamp

* updated the error message

* Updated whatsnew entry.

* Interval dtype fix (pandas-dev#25338)

* [CLN] Excel Module Cleanups (pandas-dev#25275)

Closes pandas-devgh-25153

Authored-By: tdamsma <tdamsma@gmail.com>

* ENH: indexing and __getitem__ of dataframe and series accept zerodim integer np.array as int (pandas-dev#24924)

* REGR: fix TimedeltaIndex sum and datetime subtraction with NaT (pandas-dev#25282, pandas-dev#25317) (pandas-dev#25329)

* edited whatsnew typo (pandas-dev#25381)

* fix typo of see also in DataFrame stat funcs (pandas-dev#25388)

* API: more consistent error message for MultiIndex.from_arrays (pandas-dev#25189)

* CLN: (re-)enable infer_dtype to catch complex (pandas-dev#25382)

* DOC: Edited docstring of Interval (pandas-dev#25410)

The docstring contained a repeated segment, which I removed.

* Mark test_pct_max_many_rows as high memory (pandas-dev#25400)

Fixes issue pandas-dev#25384

* Correct a typo of version number for interpolate() (pandas-dev#25418)

* DEP: add pytest-mock to environment.yml (pandas-dev#25417)

* BUG: Fix type coercion in read_json orient='table' (pandas-dev#21345) (pandas-dev#25219)

* ERR: doc update for ParsingError (pandas-dev#25414)

Closes pandas-devgh-22881

* ENH: Add in sort keyword to DatetimeIndex.union (pandas-dev#25110)

* DOC: Rewriting of ParserError doc + minor spacing (pandas-dev#25421)

Follow-up to pandas-devgh-25414.

* API/ERR: allow iterators in df.set_index & improve errors (pandas-dev#24984)

* BUG: Indexing with UTC offset string no longer ignored (pandas-dev#25263)

* PERF/REF: improve performance of Series.searchsorted, PandasArray.searchsorted, collect functionality (pandas-dev#22034)

* TST: remove never-used singleton fixtures (pandas-dev#24885)

* BUG: fixed merging with empty frame containing an Int64 column (pandas-dev#25183) (pandas-dev#25289)

* DOC: fixed geo accessor example in extending.rst (pandas-dev#25420)

I realised "lon" and "lat" had just been switched with "longitude" and "latitude" in the following code block. So I used those names here as well.

* TST: numpy RuntimeWarning with Series.round() (pandas-dev#25432)

* CI: add __init__.py to isort skip list (pandas-dev#25455)

* DOC: CategoricalIndex doc string (pandas-dev#24852)

* DataFrame.drop Raises KeyError definition (pandas-dev#25474)

* BUG: Keep column level name in resample nunique (pandas-dev#25469)

Closes pandas-devgh-23222

xref pandas-devgh-23645

* ERR: Correct error message in to_datetime (pandas-dev#25467)

* ERR: Correct error message in to_datetime

Closes pandas-devgh-23830

xref pandas-devgh-23969

* Fix minor typo (pandas-dev#25458)

Signed-off-by: Philippe Ombredanne <pombredanne@nexb.com>

* CI: Set pytest minversion to 4.0.2 (pandas-dev#25402)

* CI: Set pytest minversion to 4.0.2

* STY: use pytest.raises context manager (indexes) (pandas-dev#25447)

* STY: use pytest.raises context manager (tests/test_*) (pandas-dev#25452)

* STY: use pytest.raises context manager (tests/test_*)

* fix ci failures

* skip py2 ci failure

* Fix minor error in dynamic load function (pandas-dev#25256)

* Cythonized GroupBy Quantile (pandas-dev#20405)

* BUG: Fix regression on DataFrame.replace for regex (pandas-dev#25266)

* BUG: Fix regression on DataFrame.replace for regex

The commit ensures that the replacement for regex is not confined to the 
beginning of the string but spans all the characters within. The 
behaviour is then consistent with versions prior to 0.24.0.

One test has been added to account for character replacement when the 
character is not at the beginning of the string.

* Correct contribution guide docbuild instruction (pandas-dev#25479)

* TST/REF: Add pytest idiom to test_frequencies.py (pandas-dev#25430)

* BUG: Fix index type casting in read_json with orient='table' and float index (pandas-dev#25433) (pandas-dev#25434)

* BUG: Groupby.agg with reduction function with tz aware data (pandas-dev#25308)

* BUG: Groupby.agg cannot reduce with tz aware data

* Handle output always as UTC

* Add whatsnew

* isort and add another fixed groupby.first/last issue

* bring condition at a higher level

* Add try for _try_cast

* Add comments

* Don't pass the utc_dtype explicitly

* Remove unused import

* Use string dtype instead

* DOC: Fix docstring for read_sql_table (pandas-dev#25465)

* ENH: Add Series.str.casefold (pandas-dev#25419)

* Fix PR10 error and Clean up docstrings from functions related to RT05 errors (pandas-dev#25132)

* Fix unreliable test (pandas-dev#25496)

* DOC: Clarifying doc/make.py --single parameter (pandas-dev#25482)

* fix MacPython / pandas-wheels ci failures (pandas-dev#25505)

* DOC: Reword Series.interpolate docstring for clarity (pandas-dev#25491)

* Changed insertion order to sys.path (pandas-dev#25486)

* TST: xfail non-writeable pytables tests with numpy 1.16x (pandas-dev#25517)

* STY: use pytest.raises context manager (arithmetic, arrays, computati… (pandas-dev#25504)

* BUG: Fix RecursionError during IntervalTree construction (pandas-dev#25498)

* STY: use pytest.raises context manager (plotting, reductions, scalar...) (pandas-dev#25483)

* STY: use pytest.raises context manager (plotting, reductions, scalar...)

* revert removed testing in test_timedelta.py

* remove TODO from test_frame.py

* skip py2 ci failure

* BUG: Fix potential segfault after pd.Categorical(pd.Series(...), categories=...) (pandas-dev#25368)

* Make DataFrame.to_html output full content (pandas-dev#24841)

* BUG-16807-1 SparseFrame fills with default_fill_value if data is None (pandas-dev#24842)

Closes pandas-devgh-16807.

* DOC: Add conda uninstall pandas to contributing guide (pandas-dev#25490)

* fix pandas-dev#25487 add modify documentation

* fix segfault when running with cython coverage enabled, xref cython#2879 (pandas-dev#25529)

* TST: inline empty_frame = DataFrame({}) fixture (pandas-dev#24886)

* DOC: Polishing typos out of doc/source/user_guide/indexing.rst (pandas-dev#25528)

* STY: use pytest.raises context manager (frame) (pandas-dev#25516)

* DOC: Fix pandas-dev#24268 by updating description for keep in Series.nlargest (pandas-dev#25358)

* DOC: Fix pandas-dev#24268 by updating description for keep

* fix MacPython / pandas-wheels ci failures (pandas-dev#25537)

*  TST/CLN: Remove more Panel tests (pandas-dev#25550)

* BUG: caught typeError in series.at (pandas-dev#25506) (pandas-dev#25533)

* ENH: Add errors parameter to DataFrame.rename (pandas-dev#25535)

* ENH: GH13473 Add errors parameter to DataFrame.rename

* TST: Skip IntervalTree construction overflow test on 32bit (pandas-dev#25558)

* DOC: Small fixes to 0.24.2 whatsnew (pandas-dev#25559)

* minor typo error (pandas-dev#25574)

* BUG: in error message raised when invalid axis parameter (pandas-dev#25553)

* BLD: Fixed pip install with no numpy (pandas-dev#25568)

* Document the behavior of `axis=None` with `style.background_gradient` (pandas-dev#25551)

* fix minor typos in dsintro.rst (pandas-dev#25579)

* BUG: Handle readonly arrays in period_array (pandas-dev#25556)

* BUG: Handle readonly arrays in period_array

Closes pandas-dev#25403

* DOC: Fix typo in tz_localize (pandas-dev#25598)

* BUG: secondary y axis could not be set to log scale (pandas-dev#25545) (pandas-dev#25586)

* TST: add test for groupby on list of empty list (pandas-dev#25589)

* TYPING: Small fixes to make stubgen happy (pandas-dev#25576)

* CLN: Parmeterize test cases (pandas-dev#25355)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.