Sergey M․
15707c7e02
[compat] Add compat_urllib_parse_urlencode and eliminate encode_dict
...
encode_dict functionality has been improved and moved directly into compat_urllib_parse_urlencode
All occurrences of compat_urllib_parse.urlencode throughout the codebase have been replaced by compat_urllib_parse_urlencode
Closes #8974
2016-03-26 01:46:57 +06:00
Sergey M․
57f7e3c62d
[compat] Add compat_xpath
2016-03-18 02:51:38 +06:00
remitamine
83548824c2
Merge pull request #8092 from bpfoley/twitter-thumbnail
...
[utils] Add extract_attributes for extracting html tag attributes
2016-03-16 13:16:27 +01:00
Yen Chi Hsuan
e9c0cdd389
[jython] Introduce compat_os_name
...
os.name is always 'java' on Jython
2016-03-03 19:24:24 +08:00
Brian Foley
8bb56eeeea
[utils] Add extract_attributes for extracting html tag attributes
...
This is much more robust than just using regexps, and handles all
the common scenarios, such as empty/no values, repeated attributes,
entity decoding, mixed case names, and the different possible value
quoting schemes.
2016-03-03 10:11:37 +00:00
Sergey M․
611c1dd96e
[refactor] Single quotes consistency
2016-02-14 15:37:17 +06:00
Yen Chi Hsuan
614db89ae3
[compat] Clarify the versions requiring compat_kwargs
...
It's supported since 2.7.0 alpha 1 and 2.6.5 rc 1. See
https://hg.python.org/cpython/file/v2.7a1/Misc/NEWS#l337
https://hg.python.org/cpython/file/v2.6.5rc1/Misc/NEWS#l28
2016-01-16 22:17:31 +08:00
Sergey M․
67dda51722
Rename compat_urllib_request_Request to sanitized_Request and move to utils
2015-11-23 21:55:15 +06:00
Sergey M․
13a10d5aa3
[compat] Add compat_urllib_request_Request
...
This is actually not a compatibility routine but rather a workaround for URLs without protocol specified.
The protocol-less URL is treated as HTTP one since it's most probable scenario and it will most likely to
redirect to HTTPS if HTTPS was actually expected. This routine could also be useful for any Request
preprocessing that may be added in future.
2015-11-23 21:55:12 +06:00
Jaime Marquínez Ferrándiz
ae37338e68
[compat] compat_etree_fromstring: clarify comment
2015-10-29 13:58:40 +01:00
Jaime Marquínez Ferrándiz
f78546272c
[compat] compat_etree_fromstring: also decode the text attribute
...
Deletes parse_xml from utils, because it also does it.
2015-10-26 16:41:24 +01:00
Jaime Marquínez Ferrándiz
387db16a78
[compat] compat_etree_fromstring: only decode bytes objects
2015-10-25 20:30:54 +01:00
Jaime Marquínez Ferrándiz
36e6f62cd0
Use a wrapper around xml.etree.ElementTree.fromstring in python 2.x ( #7178 )
...
Attributes aren't unicode objects, so they couldn't be directly used in info_dict fields (for example '--write-description' doesn't work with bytes).
2015-10-25 20:13:16 +01:00
Yen Chi Hsuan
0a67a3632b
[compat] Add compat_urllib_request_DataHandler
2015-10-18 13:44:21 +08:00
Sergey M․
f2dbc54066
[compat] Fix wrong lines/columns order
...
stty size is rows x columns
2015-10-06 22:02:28 +06:00
Philipp Hagemeister
4810c48d6d
[compat] Do not compare None <= 0
...
The result is meaningless (and it emits a warning in cpython2 when called with -3), so handle None before making integer comparisons.
2015-10-06 14:30:43 +02:00
Yen Chi Hsuan
13118a50b8
[compat] Allow overriding by only COLUMNS or LINES in compat_get_terminal_size
...
Now the semantic of this function is identical to
shutil.get_terminal_size() in Python 3.3+. The new behavior also
corresponds to the old get_term_width(), which is removed in
003c69a84b
2015-10-03 00:00:33 +02:00
Philipp Hagemeister
953fed280f
[compat] Do not use unicode
...
If the code ever runs on 3.x, it would fail. Even if it never does, the unicode name confuses Python 3 code analysis tools.
2015-09-14 00:25:08 +02:00
Sergey M․
8df5ae15d1
[compat] Fix python version check for compat_shlex_split
2015-09-05 22:21:06 +06:00
Sergey M․
51f579b635
[compat] Add compat shlex.split
2015-09-05 21:40:44 +06:00
Jaime Marquínez Ferrándiz
03950c90f7
Merge remote-tracking branch 'jaimemf/format_spec_groups' ( closes #6124 )
2015-08-03 15:22:51 +02:00
remitamine
799207e838
[viewster] extract the api auth token
...
Closes #6406 .
2015-07-30 12:55:48 +02:00
Sergey M․
22603348aa
[compat] Fix _asciire
2015-07-18 18:32:52 +06:00
Sergey M․
3cc8b4c327
[compat] Fix missing _asciire on python 2.6
2015-07-18 00:24:39 +06:00
Sergey M․
4d08161ac2
[compat] Mention unquote_plus
2015-07-17 23:32:43 +06:00
Sergey M․
aa99aa4e85
[compat] Add compat_urllib_parse_unquote_plus
2015-07-17 23:28:34 +06:00
Sergey M․
5513967926
[compat] Simplify and use latest cpython 3 code
2015-07-17 22:58:13 +06:00
fnord
593b77064c
Don't forget trailing '%'
2015-07-17 09:45:49 -05:00
fnord
9fefc88656
fix TestCompat test_all_present
2015-07-17 07:24:07 -05:00
fnord
a0f28f90fa
remove kebab
2015-07-17 01:50:43 -05:00
fnord
851229a01f
remove debugprint
2015-07-17 01:49:55 -05:00
fnord
c9c854cea7
replace old compat_urllib_parse_unquote with backport from python3's function
...
* required unquote_to_bytes function ported as well
(uses .decode('hex') instead of dynamically populated _hextobyte global)
* required implicit conversion to bytes and/or unicode in places due to
differing type assumptions in p3
2015-07-17 01:31:29 -05:00
fnord
e37c932fca
compat_urllib_parse_unquote: crash fix: only decode valid hex
...
on python 2 the following has a { "crash_rate": "100%" } of the time
as it tries to parse '" ' as hex.
2015-07-15 15:28:50 -05:00
Yen Chi Hsuan
a0e060ac1e
[compat] Add compat_itertools_count
...
'step' parameter is added in Python 2.7
2015-07-10 18:58:12 +08:00
Jaime Marquínez Ferrándiz
67134eaba1
[YoutubeDL] rework how the format spec is processed
...
The spec string is processed using 'tokenize.tokenize' to split it in words and operators, the filters are still processed using regular expressions.
This should make easier to allow grouping operators with parens.
2015-06-28 22:31:35 +02:00
Jaime Marquínez Ferrándiz
2ddcd88129
Remove code that was only used by the Grooveshark extractor
2015-05-02 17:29:56 +02:00
Jaime Marquínez Ferrándiz
70a1165b32
Don't use bare 'except:'
...
They catch any exception, including KeyboardInterrupt, we don't want to catch it.
2015-03-27 13:02:20 +01:00
Jaime Marquínez Ferrándiz
003c69a84b
Use shutil.get_terminal_size for getting the terminal width if it's available (python >= 3.3)
2015-02-28 21:44:57 +01:00
Philipp Hagemeister
0196149c5b
[compat] Correct compat_basestring definition
2015-02-01 11:37:00 +01:00
Philipp Hagemeister
8f9312c387
Appease pyflakes8-3
2015-02-01 11:30:56 +01:00
Philipp Hagemeister
83fda3c000
Add a test for --no-check-certificate
2015-01-30 02:57:37 +01:00
Philipp Hagemeister
8ad6b5ed9f
[compat] Correct socket error class reference
2015-01-11 10:47:39 +01:00
Sergey M․
987493aef3
[test_compat] Fix alphabetic order to make test_all_present pass
2015-01-11 15:13:03 +06:00
Philipp Hagemeister
be4a824d74
Add new option --source-address
...
Closes #3618 , fixes #721 , fixes #2481 , fixes #4551 , closes #1020 .
2015-01-10 19:56:51 +01:00
Philipp Hagemeister
c6973bd412
[compat] Simplify kwarg detection code
...
This enables nuitka to compile youtube-dl.
2014-12-12 12:42:35 +01:00
Philipp Hagemeister
e2f89ec7aa
Revert "[utils] Work around PyPy stupidity with Windows DLLs ( Fixes #4392 )"
...
This reverts commit 16040f46d6
.
2014-12-12 11:33:55 +01:00
Philipp Hagemeister
16040f46d6
[utils] Work around PyPy stupidity with Windows DLLs ( Fixes #4392 )
2014-12-12 04:01:08 +01:00
Jaime Marquínez Ferrándiz
83e865a370
Fix PEP8 issue E713
2014-12-09 23:11:26 +01:00
Philipp Hagemeister
b061ea6e9f
[compat] Beautify assertion
2014-11-26 11:48:09 +01:00
Jouke Waleson
9e1a5b8455
PEP8: applied even more rules
2014-11-23 21:39:15 +01:00
Jouke Waleson
5f6a1245ff
PEP8 applied
2014-11-23 20:41:03 +01:00
Philipp Hagemeister
7d4111ed14
Provide guidance when called with a YouTube ID starting with a dash.
...
Reported at https://news.ycombinator.com/item?id=8648121
2014-11-23 10:51:09 +01:00
Philipp Hagemeister
b244b5c3f9
remove unused imports
2014-11-20 16:36:13 +01:00
Philipp Hagemeister
07e378fa18
[compat] correct OptionGroup invocation for Python 3 ( fixes #4243 )
2014-11-20 07:21:12 +01:00
Philipp Hagemeister
e07e931375
Work around 2.7.0 deficencies ( Fixes #4223 )
2014-11-19 18:21:58 +01:00
Philipp Hagemeister
c7b0add86f
[compat] Work around kwargs bugs in old 2.6 Python releases ( Fixes #3813 )
2014-11-15 15:17:19 +01:00
Philipp Hagemeister
451948b28c
[compat] Modernize
2014-11-02 11:36:29 +01:00
Philipp Hagemeister
baa708036c
[compat] Fix imports
2014-11-02 11:26:40 +01:00
Philipp Hagemeister
8c25f81bee
[util] Move compatibility functions out of util
...
utils is large enough without these compatibility functions.
Everything that is present in newer versions of Python (i.e. with dev Python it's just an import) goes into compat.py .
Everything else (i.e. youtube-dl-specific helpers) goes into utils.py .
2014-11-02 11:23:42 +01:00