Skip to content

CI: Migrate to circleci 2.0 #21814

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

Merged
merged 32 commits into from
Aug 17, 2018
Merged

CI: Migrate to circleci 2.0 #21814

merged 32 commits into from
Aug 17, 2018

Conversation

TomAugspurger
Copy link
Contributor

@TomAugspurger TomAugspurger commented Jul 8, 2018

closes #19929

@TomAugspurger TomAugspurger added the CI Continuous Integration label Jul 8, 2018
@jreback
Copy link
Contributor

jreback commented Jul 8, 2018

this is more readable! hahah

@jreback jreback added this to the 0.24.0 milestone Jul 8, 2018
@TomAugspurger
Copy link
Contributor Author

Slightly! I haven't tried de-duplicating things between the jobs yet, but will once things are passing (hopefully this commit).

@codecov
Copy link

codecov bot commented Jul 12, 2018

Codecov Report

Merging #21814 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master   #21814   +/-   ##
=======================================
  Coverage   92.05%   92.05%           
=======================================
  Files         169      169           
  Lines       50709    50709           
=======================================
  Hits        46679    46679           
  Misses       4030     4030
Flag Coverage Δ
#multiple 90.46% <ø> (ø) ⬆️
#single 42.25% <ø> (ø) ⬆️
Impacted Files Coverage Δ
pandas/core/frame.py 97.24% <0%> (ø) ⬆️

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 2a2d1cf...03e732f. Read the comment docs.

@TomAugspurger
Copy link
Contributor Author

Still need to figure out the database tests.

@jreback
Copy link
Contributor

jreback commented Jul 20, 2018

@TomAugspurger

* Fixed locale setting
* Added 36_slow
* fixed command for slow / not slow
@TomAugspurger
Copy link
Contributor Author

Locale stuff will hopefully be working now.

FYI, the slow cases where flipped in

- case $CIRCLE_NODE_INDEX in 0) ./ci/run_circle.sh --skip-slow --skip-network ;; 1) ./ci/run_circle.sh --only-slow --skip-network ;; 2) ./ci/run_circle.sh --skip-slow --skip-network ;; 3) ./ci/run_circle.sh --skip-slow --skip-network ;; esac:
. Job 1 (36_LOCALE) was running slow only and Job 2 (36_LOCALE_SLOW) was skipping the slow ones. I've corrected that.

Working on the database now.

@jorisvandenbossche
Copy link
Member

@TomAugspurger what is the status here?

@TomAugspurger
Copy link
Contributor Author

Just down to locale failures, which #22213 hopefully fixed.

Will merge master and try again.

@TomAugspurger
Copy link
Contributor Author

Actually, looking more closely I don't think those locale failures will be resolved by #22213...

value = '三, 08 8月 2018 17:42:53 GMT'

    def parse_timestamp(value):
        """Parse a timestamp into a datetime object.
    
        Supported formats:
    
            * iso8601
            * rfc822
            * epoch (value is an integer)
    
        This will return a ``datetime.datetime`` object.
    
        """
        if isinstance(value, (int, float)):
            # Possibly an epoch time.
            return datetime.datetime.fromtimestamp(value, tzlocal())
        else:
            try:
                return datetime.datetime.fromtimestamp(float(value), tzlocal())
            except (TypeError, ValueError):
                pass
        try:
            # In certain cases, a timestamp marked with GMT can be parsed into a
            # different time zone, so here we provide a context which will
            # enforce that GMT == UTC.
            return dateutil.parser.parse(value, tzinfos={'GMT': tzutc()})
        except (TypeError, ValueError) as e:
>           raise ValueError('Invalid timestamp "%s": %s' % (value, e))
E           ValueError: Invalid timestamp "三, 08 8月 2018 17:42:53 GMT": ('Unknown string format:', '三, 08 8月 2018 17:42:53 GMT')

I'll look more closely today.

@TomAugspurger
Copy link
Contributor Author

I can reproduce some of the locale failures locally with

diff --git a/pandas/tests/io/parser/test_network.py b/pandas/tests/io/parser/test_network.py
index a7cc3ad98..2b728c03d 100644
--- a/pandas/tests/io/parser/test_network.py
+++ b/pandas/tests/io/parser/test_network.py
@@ -59,6 +59,9 @@ class TestS3(object):
 
     def test_parse_public_s3_bucket(self, tips_df):
         pytest.importorskip('s3fs')
+        import locale
+
+        locale.setlocale(locale.LC_ALL, "zh_CN.UTF-8")
         # more of an integration test due to the not-public contents portion
         # can probably mock this though.
         for ext, comp in [('', None), ('.gz', 'gzip'), ('.bz2', 'bz2')]

This is in S3File.info, but I'm not sure whether s3fs is to blame, or boto, or moto, or someone else.

Going to skip these if the locale.LC_TIME isn't en_US.UTF-8. Will open followup issues.

@TomAugspurger
Copy link
Contributor Author

In theory, just TestDatetime64.test_datetime_name_accessors[crh_UA.UTF-8] should fail now. Looking into it now.

@TomAugspurger
Copy link
Contributor Author

This is fun

(Pdb) x
'İyun'
(Pdb) y
'İyun'
(Pdb) [(ord(a), ord(b)) for a, b in zip(x, y)]
[(73, 304), (775, 121), (121, 117), (117, 110)]

x came from us, y came from calendar.month_name. It seems like calendar.month_name normalizes the strings

(Pdb) unicodedata.normalize("NFC", x) == x
False
(Pdb) unicodedata.normalize("NFC", y) == y
True

Not sure why this wasn't failing earlier though.

@TomAugspurger
Copy link
Contributor Author

All green (finally).

@jreback
Copy link
Contributor

jreback commented Aug 17, 2018

lgtm! thanks @TomAugspurger herculean effort!

@jreback jreback merged commit e669fae into pandas-dev:master Aug 17, 2018
@TomAugspurger TomAugspurger deleted the circle-2 branch August 17, 2018 11:28
@TomAugspurger
Copy link
Contributor Author

Opened #22396 with a couple followup items. Will do that in a couple days in case we notice anything else.

@jorisvandenbossche
Copy link
Member

Thanks a lot Tom!

Moons08 pushed a commit to Moons08/pandas that referenced this pull request Aug 17, 2018
gfyoung added a commit to forking-repos/pandas that referenced this pull request Sep 8, 2018
gfyoung added a commit to forking-repos/pandas that referenced this pull request Sep 10, 2018
gfyoung added a commit to forking-repos/pandas that referenced this pull request Sep 10, 2018
gfyoung added a commit that referenced this pull request Sep 11, 2018
* CI: Bump NumPy to 1.9.3

Backport of gh-22499.

* BLD: Fix openpyxl to 2.5.5

Backport of gh-22601.

* CI: Resolve timeout issue on Travis

Backported from gh-22429.

* CI: Migrate to CircleCI 2.0

Backport of gh-21814.

* Upgrade Cython to >=0.28.2

Backported from gh-21688.

* TST: Patch locale handling

Backported from gh-21739.
Backport of gh-22213.
Sup3rGeo pushed a commit to Sup3rGeo/pandas that referenced this pull request Oct 1, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Continuous Integration
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CI: Migrate to circle CI 2.0
3 participants