Sergey M․
84213ea8d4
[youtube] Extract chapters from JSON ( closes #24819 )
5 years ago
Sergey M․
c380cc28c4
[utils] Improve cookie files support
...
+ Add support for UTF-8 in cookie files
* Skip malformed cookie file entries instead of crashing (invalid entry len, invalid expires at)
5 years ago
Sergey M․
e40c758c2a
[youtube] Improve player id extraction and add tests
5 years ago
Sergey M․
042b664933
Revert "[utils] Add support for cookies with spaces used instead of tabs"
...
According to [1] TABs must be used as separators between fields.
Files produces by some tools with spaces as separators are considered
malformed.
1. https://curl.haxx.se/docs/http-cookies.html
This reverts commit cff99c91d1
.
5 years ago
Sergey M․
cff99c91d1
[utils] Add support for cookies with spaces used instead of tabs
5 years ago
Sergey M․
ea17979d83
[test_subtitles] Remove obsolete test
5 years ago
Sergey M․
4e9e1e240d
[test_YoutubeDL] Add tests for #10591 ( closes #23873 )
5 years ago
Sergey M․
e0abaab293
[test_YoutubeDL] Fix get_ids
5 years ago
Sergey M․
42db58ec73
[utils] Improve str_to_int
5 years ago
Remita Amine
348c6bf1c1
[utils] handle int values passed to str_to_int
5 years ago
Sergey M․
1ced222120
[utils] Add generic caesar cipher and rot47
5 years ago
InfernalUnderling
9d30c2132a
[utils] Handle rd-suffixed day parts in unified_strdate ( #23199 )
5 years ago
Remita Amine
237513e801
[yahoo] restore support for cbs suffixed URLs
5 years ago
Sergey M․
824fa51165
[utils] Improve subtitles_filename ( closes #22753 )
5 years ago
Sergey M․
28cc2241e4
[utils] Restrict parse_codecs and add theora as known vcodec ( #21381 )
6 years ago
Sergey M․
53cd37bac5
[utils] Improve strip_or_none
6 years ago
Sergey M․
3089bc748c
Fix W504 and disable W503 ( closes #20863 )
6 years ago
Jakub Wilk
fd35d8cdfd
[utils] Transliterate "þ" as "th" ( #20897 )
...
Despite visual similarity "þ" is unrelated to "p".
It is normally transliterated as "th":
$ echo þ-Þ | iconv -t ASCII//TRANSLIT
th-TH
6 years ago
Sergey M․
5e1271c56d
[utils] Improve int_or_none and float_or_none ( #20403 )
6 years ago
Sergey M․
d493f15c11
[extractor/common] Improve HTML5 entries extraction and add some realworld tests
6 years ago
Sergey M․
0dc41787af
[utils] Introduce parse_bitrate
6 years ago
Sergey M․
2e27421c70
[test_InfoExtractor] Add test for #20346
6 years ago
Sergey M․
067aa17edf
Start moving to ytdl-org
6 years ago
Sergey M․
fca9baf0da
[test] Fix test_compat_etree_Element
6 years ago
Sergey M․
399f76870d
[compat] Introduce compat_etree_Element
6 years ago
remitamine
e7e62441cd
[utils] strip #HttpOnly_ prefix from cookies files ( #20219 )
6 years ago
Ales Jirasek
22f5f5c6fc
[malltv] Add extractor ( closes #18058 )
6 years ago
Sergey M․
e118a8794f
[YoutubeDL] Fix typo in string negation implementation and add more tests ( closes #18961 )
6 years ago
Sergey M․
fad4ceb534
[utils] Fix urljoin for paths with non-http(s) schemes
6 years ago
Remita Amine
fc746c3fdd
[test/test_InfoExtractor] add test for #18923
6 years ago
Sergey M․
2cc779f497
[YoutubeDL] Add negation support for string comparisons in format selection expressions ( closes #18600 , closes #18805 )
6 years ago
Sergey M․
a16c7c033a
[test/helper] Add support for maxcount and count collection len test checkers
6 years ago
Sergey M․
6e29458f24
[test/testdata/cookies/session_cookies.txt] Fix empty expires test data
6 years ago
Sergey M․
9e02c2c704
[YoutubeDLCookieJar] Add test for keeping session cookies
6 years ago
Sergey M․
6864855eb1
[tests] Fix invalid escape sequences
6 years ago
Xiao Di Guan
95e42d7336
[extractor/common] Ensure response handle is not prematurely closed before it can be read if it matches expected_status ( resolves #17195 , closes #17846 , resolves #17447 )
6 years ago
Sergey M․
25d110be30
[utils] Properly recognize AV1 codec ( closes #17506 )
6 years ago
Sergey M․
af03000ad5
[utils] Introduce url_or_none
6 years ago
Sergey M․
e9c671d5e8
[utils] Allow JSONP with empty func name ( closes #17028 )
6 years ago
Enes
85750f8972
[openload] Improve ext extraction
7 years ago
Remita Amine
3bb3ff38a1
[test_utils] add tests for b836118724
7 years ago
Sergey M․
6cc622327f
[utils] Introduce merge_dicts
7 years ago
Sergey M․
1cc47c6674
[utils] Fix match_str for boolean meta fields
7 years ago
Dan Salmon
518d5ba519
Fix some tests
7 years ago
Sergey M․
47a5cb7734
Generalize XML manifest processing code and improve XSPF parsing ( closes #15794 )
7 years ago
Ricardo Constantino
96b8b9abae
[extractor/generic] Support relative URIs in _parse_xspf
...
<location> can have relative URIs, not just absolute.
7 years ago
Philipp Hagemeister
f226880c6d
[tennistv] Add support for tennistv.com
7 years ago
Sergey M․
b871d7e954
[utils] Add parse_resolution
7 years ago
Sergey M․
befa4708fd
[utils] Fixup some common URL's typos in sanitize_url ( closes #15649 )
7 years ago
Sergey M․
6fcc053947
[test_downloader_http] Use try_rm
7 years ago
Sergey M․
f19eae429a
[test_http] Use 127.0.0.1 instead of localhost
7 years ago
Sergey M․
ba515388b8
Introduce --http-chunk-size
7 years ago
squibbysquibby
655c410063
[test_download] Fix download tests for lazy extractors ( closes #13554 , closes #13757 )
7 years ago
Sergey M․
c707b1d828
[test_utils] Add tests for malformed JSON handling in js_to_json
7 years ago
Mike Fährmann
c384d537f8
[util] Improve scientific notation handling in js_to_json ( closes #14789 )
7 years ago
Sergey M․
9d6ac71c27
[extractor/common] Fix extraction of DASH formats with the same representation id ( closes #15111 )
7 years ago
Sergey M․
b555ae9bf1
[utils] Add another date format pattern ( #14999 )
7 years ago
Sergey M․
78593e294c
Add references for #14844
7 years ago
Petr Novak
41bf647e89
[extractor/common] Add support for DASH manifests with SegmentLists with bare SegmentURLs
7 years ago
Yen Chi Hsuan
f58a506044
[test_InfoExtractor] Fix flake8
7 years ago
Sergey M․
d08dcd2dbd
[test_YoutubeDL] Fix typo ( closes #14856 )
7 years ago
Sergey M․
181e381fda
[test_InfoExtractor] Add test for #14660
7 years ago
Sergey M․
056653bbb1
[utils] Add support for zero years and months in parse_duration
7 years ago
Sergey M․
af0f74288d
[YoutubeDL] Improve _default_format_spec ( closes #14461 )
7 years ago
Sergey M․
cd6fc19ed7
[YoutubeDL] Ignore duplicates in --playlist-items
...
E.g. '--playlist-items 2-4,3-4,3' should result in '[2,3,4]', not '[2,3,4,3,4,3]'
7 years ago
Sergey M․
86a15ed64b
[test_YoutubeDL] Add test for #14425
7 years ago
Yen Chi Hsuan
3869028ffb
[utils] Use bytes-like objects in dfxp2srt
...
This fixes handling of non-UTF8 TTML subtitles
Closes #14191
7 years ago
Yen Chi Hsuan
95f3f7c20a
[utils] Fix unescapeHTML for misformed string like "&a"" ( #13935 )
7 years ago
Sergey M․
4850478543
[extractor/common] Add support for float durations in _parse_mpd_formats ( closes #13919 )
7 years ago
Sergey M․
5b232f46dc
[utils] Skip missing params in cli_bool_option ( closes #13865 )
7 years ago
Sergey M․
8cda78ef72
[test_YoutubeDL] Add a test for #10083
7 years ago
Yen Chi Hsuan
73095e013f
[options] Typo
7 years ago
Yen Chi Hsuan
905d18a7aa
[options] Correctly hide login info from debug outputs ( #13696 )
...
Iterate over opts instead of PRIVATE_OPTS for both performance and
correctness
7 years ago
Sergey M․
0017d9ad6d
[YoutubeDL] Improve default format specification ( closes #13704 )
7 years ago
Sergey M․
0396806f67
[YoutubeDL] Do not override id, extractor and extractor_key in url_transparent
...
All these meta fields must be borrowed from final extractor that actually performs extraction.
This commit fixes extractor id in download archives for url_transparent downloads. Previously, 'transparent' extractor was erroneously
used for extractor archive id, e.g. 'eggheadlesson 4n8ugwwj5t' instead of 'wistia 4n8ugwwj5t'.
7 years ago
Sergey M․
15da37c7dc
[YoutubeDL] Don't expand env variables in meta fields ( closes #13637 )
7 years ago
Sergey M․
dee2ff1d81
[test_utils] Fix tests under Windows
8 years ago
Yen Chi Hsuan
609ff8ca19
[utils] Support attributes with no values in get_elements_by_attribute()
8 years ago
Sergey M․
b4a3d461e4
[utils] Handle HTMLParseError in extract_attributes ( closes #13349 )
8 years ago
Sergey M․
2ae2ffda5e
[utils] Improve unified_timestamp
8 years ago
Sergey M․
39d4c1be4d
[youtube] Improve chapters extraction ( closes #13247 )
8 years ago
Yen Chi Hsuan
5552c9eb0f
[utils] Recognize more patterns in strip_jsonp()
...
Used in Youku Show pages
8 years ago
Sergey M․
e4a75d7932
[test_youtube_chapters] PEP 8
8 years ago
Sergey M․
a57a8e9918
[test_youtube_chapters] Add coding cookie
8 years ago
Sergey M․
9cafc3fd8b
[youtube] Extract chapters
8 years ago
Yen Chi Hsuan
0c26548601
[cda] Implement birthday verification ( closes #12789 )
8 years ago
Sergey M․
deef31955b
[utils] Improve unified_timestamp
...
Seen at http://zaq1.pl/video/xev0e
8 years ago
Tithen-Firion
9222d94510
[test_utils] Add one more clean_html test
8 years ago
Sergey M․
30bb6ce1a4
[test_InfoExtractor] Fix test_parse_m3u8_formats
8 years ago
Tithen-Firion
374560f018
[test_download] Fix order when testing file's md5
8 years ago
Sergey M․
ff99fe529e
Don't list master m3u8 playlists in format list ( closes #12832 )
8 years ago
Sergey M․
538eee7b6a
Add missing test m3u8 file
8 years ago
Sergey M․
ddd258f922
[test_InfoExtractor] Add m3u8 parsing test for NAME attribute in EXT-X-STREAM-INF tag
8 years ago
Sergey M․
cb2520802d
[extractor/common] Improve m3u8 extraction ( closes #12211 )
...
* Extract m3u8 parsing to separate method
* Improve rendition groups extraction
* Build stream name according stream GROUP-ID
* Ignore reference to AUDIO group without URI when stream has no CODECS
+ Add test coverage for parsing m3u8 from #11507 , #11995 , #12211 and twitch vod
8 years ago
Remita Amine
5b995f713b
[utils] add support for ttml styles
8 years ago
Sergey M․
51350db5a3
[test_YoutubeDL] Add test for #11163
8 years ago
Sergey M․
364a69e8c6
[test_download] Fix testing playlists with single video and add comments
8 years ago
Sergey M․
60e5016199
[test_download] Remove unused import
8 years ago
Sergey M․
c4d6fc6d65
[test_subtitles] Fix raiplay test
8 years ago
Sergey M․
80b2fdf9ac
[test_download] Match info dicts against tests before matching info file
8 years ago
John Hawkinson
3bef10a50c
[test_download] typo in comment
8 years ago
John Hawkinson
a84da06f49
[test_download] Improve diagnostic on wrong 'id'
8 years ago
Sergey M․
942b44a052
[test_compat] Do not use dash in env variables' names
8 years ago
Sergey M․
a426ef6d78
[test_utils] Do not use dash in env variables' names
8 years ago
Sergey M․
41c5e60dd5
[test_utils] Fix expand_path tests
8 years ago
Sergey M․
51098426b8
[utils] Introduce expand_path
8 years ago
John Hawkinson
c6c22e984d
[test_download] Print additional IEs in summary output
8 years ago
Sergey M․
7f3590c43b
[test_InfoExtractor] Add some realworld tests for _extract_jwplayer_data
8 years ago
Sergey M․
4b5de77bdb
[utils] Process bytestrings in urljoin ( closes #12369 )
8 years ago
Yen Chi Hsuan
f48409c7ac
[utils] Add pkcs1pad
...
Used in daisuki.net (#4738 )
8 years ago
Yen Chi Hsuan
c9619f0a17
[aes] Add aes_cbc_encrypt
...
Used in daisuki.net (#4738 )
8 years ago
Sergey M․
d0d9ade486
[YoutubeDL] Add support for string formatting operations in output template
8 years ago
Yen Chi Hsuan
8936f68a0b
[travis] Run tests in parallel
...
[test_download] Print test names in case of network errors
[test_download] Add comments for nose parameters
[test_download] Modify outtmpl to prevent info JSON filename conflicts
Thanks @jaimeMF for the idea.
[travis] Only download tests should be run in parallel
8 years ago
Sergey M․
398dea3210
[test_YoutubeDL] Fix invalid escape sequences
8 years ago
Sergey M․
db13c16ef8
[utils] Add support for quoted string literals in --match-filter ( closes #8050 , closes #12142 , closes #12144 )
8 years ago
Thomas Christlieb
2af12ad9d2
Introduce get_elements_by_class and get_elements_by_attribute utility functions
8 years ago
Sergey M․
4195096ea8
[utils] Improve comments processing in js_to_json ( closes #11947 )
8 years ago
Michal Čihař
b3ee552e4b
[utils] Handle single-line comments in js_to_json
8 years ago
Sergey M․
15846398ca
[utils] Improve parse_duration
8 years ago
Sergey M․
cb655f34fb
[utils] Add more date formats
8 years ago
Remita Amine
7fe1592073
[common] fix dash codec information for mixed videos and fragment url construction( #11490 )
8 years ago
Sergey M․
b0c65c677f
[utils] Improve urljoin
8 years ago
Sergey M․
e34c33614d
[utils] Add convenience urljoin
8 years ago
Yen Chi Hsuan
582be35847
Update coding style after pycodestyle 2.1.0
...
In pycodestyle 2.1.0, E305 was introduced, which requires two blank
lines after top level declarations, too.
See https://github.com/PyCQA/pycodestyle/issues/400
See also #10689 ; thanks @stepshal for first mentioning this issue and
initial patches
8 years ago
Kacper Michajłow
189935f159
[jsinterp] Fix function calls without arguments.
8 years ago
Sergey M․
02dc0a36b7
[utils] Introduce base_url
8 years ago
Sergey M․
e5a088dc4b
[utils] Fix --match-filter for int-like strings ( closes #11082 )
8 years ago
Yen Chi Hsuan
6f20b65e72
[test/test_http] Update tests
...
After switching to HTML5 extraction helpers in generic.py, the result
info_dict is always a playlist.
8 years ago
Sergey M․
c6eed6b8c0
[utils] Lower priority for rare date formats and add tests
8 years ago
Sergey M․
3e4185c396
[utils] Use native french month names
8 years ago
Sergey M․
f6717dec8a
[utils] Improve month_by_name and add tests
8 years ago
Sergey M․
6562d34a8c
[utils] Improve mimetype2ext
8 years ago
Yen Chi Hsuan
70852b47ca
[utils] Recognize units with full names in parse_filename
...
Reference: https://en.wikipedia.org/wiki/Template:Quantities_of_bytes
8 years ago
Yen Chi Hsuan
e4659b4547
[utils] Correct octal/hexadecimal number detection in js_to_json
8 years ago
Sergey M․
13585d7682
[utils] Recognize lowercase units in parse_filesize
8 years ago
Yen Chi Hsuan
52aa7e7476
[test_verbose_output] Fix tests under Python 3
8 years ago
Remita Amine
5f2c2b7936
[test_utils] add test for option with not str value
8 years ago
Sergey M․
a8795327ca
[utils] Add support TV Parental Guidelines ratings in parse_age_limit
8 years ago
Yen Chi Hsuan
7dc2a74e0a
[utils] Fix unified_timestamp for formats parsed by parsedate_tz()
8 years ago
Sergey M․
b070564efb
[extractor/common] Support multiple properties in _og_search_property
8 years ago
Philipp Hagemeister
ce28252c48
[options] Add test that checks that --password=secret is hidden in verbose output
8 years ago
Yen Chi Hsuan
14a28e705b
[test/test_all_urls] Remove *.cc.com tests
8 years ago
Sergey M․
317f7ab634
[YoutubeDL] Fix format selection with filters ( Closes #10083 )
8 years ago
Yen Chi Hsuan
0b68de3cc1
Merge pull request #8876 from remitamine/html5_media
...
[extractor/common] add helper method to extract html5 media entries
9 years ago
Yen Chi Hsuan
dfe5fa49ae
[compat] Fix compat_shlex_split for non-ASCII input
...
Closes #9871
9 years ago
Yen Chi Hsuan
84c237fb8a
[utils] Add get_element_by_class
...
For #9950
9 years ago
Remita Amine
dfaa86b75e
[test_utils] add test for smuggling a smuggled url
9 years ago
Yen Chi Hsuan
40f3666f6b
[test/test_http] Update tests for 38cce791c7
9 years ago
Jaime Marquínez Ferrándiz
a9eede3913
[test/compat] compat_shlex_split: test with newlines
9 years ago
Sergey M․
fd7a7498a4
[test_all_urls] PEP 8 and change wording
9 years ago
Matthieu Muffato
e3a6747d8f
New test-case: extractor names are supposed to be unique
...
@dstftw explained in
https://github.com/rg3/youtube-dl/pull/9918#issuecomment-228625878 that
extractor names are supposed to be unique. @dstftw has fixed the two
offending extractors, and here I add a test to ensure this does not
happen in the future.
9 years ago
remitamine
4f3c5e0627
[utils] add helper function for parsing codecs
9 years ago
Sergey M․
88d9f6c0c4
[utils] Add support for name list in _html_search_meta
9 years ago
Yen Chi Hsuan
1143535d76
[utils] Add urshift()
...
Used in IqiyiIE and LeIE
9 years ago
Sergey M․
46f59e89ea
[utils] Add unified_timestamp
9 years ago
Yen Chi Hsuan
47212f7bcb
[utils] Don't transform numbers not starting with a zero
...
Fix test_Viidea and maybe others
9 years ago
Yen Chi Hsuan
55b2f099c0
[utils] Decode HTML5 entities
...
Used in test_Vporn_1. Also related to #9270
9 years ago
bzc6p
b96f007eeb
Added sanitization support for Hungarian letters Ő and Ű
9 years ago
Yen Chi Hsuan
54fb199681
[test/test_http] Fix getsockname() on Jython
9 years ago
Yen Chi Hsuan
8c32e5dc32
[test/test_utils] Add test for #9588
9 years ago
Yen Chi Hsuan
eb7941e3e6
[compat] Fix for XML with <!DOCTYPE> in Python 2.7 and 3.2
...
Such XML documents cause DeprecationWarning if python is run
with `-W error`
9 years ago
Sergey M․
46bc9b7d7c
[utils] Allow None in remove_{start,end}
9 years ago
Sergey M․
364cf465dd
[test_utils] PEP 8
9 years ago
Sergey M․
89ac4a19e6
[utils] Process non-base 10 integers in js_to_json
9 years ago
felix
bd1e484448
[utils] js_to_json: various improvements
...
now JS object literals like { /* " */ 0: ",]\xaa<\/p>", } will be correctly converted to JSON.
9 years ago
Yen Chi Hsuan
98d560f205
[test/test_socks] Skip SOCKS tests
...
They occasional trigger errors or blocks
(https://travis-ci.org/rg3/youtube-dl/jobs/130184883 )
9 years ago
Yen Chi Hsuan
778a1ccca7
[utils] Add Œ and œ found in French to ACCENT_CHARS
...
Fixes #9463
9 years ago
Yen Chi Hsuan
c2876afafe
[test/test_socks] Use a different port range
...
Seems on Travis CI, ports in the original range are often used.
9 years ago
Yen Chi Hsuan
e21f17fc86
[test/test_socks] Test with local SOCKS servers
9 years ago
Yen Chi Hsuan
edaa23f822
[compat] Rename struct_(un)pack to compat_struct_(un)pack
9 years ago
Yen Chi Hsuan
72f3289ac4
[test/test_socks] Add tests for SOCKS proxies
9 years ago
Yen Chi Hsuan
dab0daeeb0
[utils,compat] Move struct_pack and struct_unpack to compat.py
9 years ago
Sergey M․
fad7bbec3a
[test_compat] Remove unused import
9 years ago
Sergey M․
20cfdcc910
[test_compat] Avoid None values for compat_setenv
9 years ago
Sergey M․
1292638754
[test_compat] Use compat_setenv
9 years ago
Sergey M․
fe40f9eef2
[compat] Add compat_setenv
9 years ago
Adam Thalhammer
31c4448f6e
Instead of replacing accented characters with an underscore when sanitizing file names in restricted mode, replace them with their non-accented equivalents fixes #9347
9 years ago
Adam Thalhammer
79a2e94e79
Instead of replacing accented characters with an underscore when sanitizing file names in restricted mode, replace them with their non-accented equivalents fixes #9347
9 years ago
Sergey M
b6c0d4f431
Merge pull request #9110 from remitamine/parse_duration
...
[utils] imporove parse_duration to handle more formats
9 years ago
remitamine
acaff49575
[utils] imporove parse_duration to handle more formats
9 years ago
Jaime Marquínez Ferrándiz
1b6182d8f7
[youtube:playlist] Fetch all the videos in a mix ( fixes #3837 )
...
Since there doesn't seem to be any indication, it stops when there aren't new videos in the webpage.
9 years ago
Jaime Marquínez Ferrándiz
6a801f4470
[test/InfoExtractors] add test for _download_json
9 years ago
Jaime Marquínez Ferrándiz
eb9c3edd5e
[test/utils] Add test for date_from_str
9 years ago
Yen Chi Hsuan
6c4c7539f2
[test/helper] Check got values to be strings for md5: fields
...
Seen in PBSIE tests
9 years ago
Yen Chi Hsuan
92d5477d84
[compat] Handle tuples properly in urlencode()
...
Fixes #9055
9 years ago
Sergey M․
e289d6d62c
[test_compat] Add tests for compat_urllib_parse_urlencode
9 years ago
Yen Chi Hsuan
81f36eba88
[test/test_utils] Update for escape_url change (again)
9 years ago
Yen Chi Hsuan
2d60465e44
[test/test_utils] Update for escape_url change
9 years ago
Yen Chi Hsuan
efbed08dc2
[utils] Encode hostnames before passing to urllib
...
With IDN (Internationalized Domain Name) and a proxy, non-ascii URLs
are passed down to urllib/urllib2, causing UnicodeEncodeError
Fixes #8890
9 years ago
Jaime Marquínez Ferrándiz
782b1b5bd1
[utils] lookup_unit_table: Match word boundary instead of end of string
9 years ago
Sergey M․
4c3b16d5d1
[test_YoutubeDL] Add test for format_id format selection
9 years ago
Sergey M․
c5229f3926
[utils] PEP 8
9 years ago
remitamine
83548824c2
Merge pull request #8092 from bpfoley/twitter-thumbnail
...
[utils] Add extract_attributes for extracting html tag attributes
9 years ago
Sergey M․
fb47597b09
[bbc] Generalize unit table lookup and add parse_count
9 years ago
Sergey M․
e0dccdd398
[test_YoutubeDL] PEP 8
9 years ago
Sergey M․
5d583bdf6c
[YoutubeDL] Improve _format_note
9 years ago
remitamine
1255733945
Merge pull request #8739 from remitamine/update_url_params
...
[utils] add update_url_query function to create or update query string params
9 years ago
remitamine
3201a67f61
[test/test_utils] add more tests for update_url_query
9 years ago
remitamine
fb640d0a3d
[test/test_utils] add tests for update_url_query
9 years ago
Yen Chi Hsuan
429491f531
[test/http] Fix failure in Jython
...
make offlinetest passed on the latest Jython hg version with patched
lib-python/2.7/urllib2.py pulled from CPython 2.7.11
9 years ago