Dave Halter
8ff5ca81d2
Make a package out of refactoring
2020-02-25 10:28:27 +01:00
Dave Halter
ff60c0af87
Docstrings
2020-02-25 10:27:36 +01:00
Dave Halter
89398e5c87
Deal a lot better with prefixes in range extractions
2020-02-25 10:23:38 +01:00
Dave Halter
f8d9f498d0
Get a first extract test mostly working
2020-02-24 10:12:38 +01:00
Peter Law
30738a092b
Update sith's module docstring to match the available operations
2020-02-24 01:33:46 +01:00
Dave Halter
f527138e6c
Extract: Fix param order for methods
2020-02-24 00:19:34 +01:00
Dave Halter
24a4c3ceba
Test closure extraction
2020-02-23 23:56:59 +01:00
Dave Halter
48e25c1b9b
Extract: Make sure params are not duplicated
2020-02-23 23:22:38 +01:00
Peter Law
f1a9e681ad
Ensure comprehensions and generator expressions work
2020-02-23 15:25:28 +00:00
Peter Law
f4cbf61604
Ensure variadic tuples (Tuple[T, ...]) behave like sequences
2020-02-23 14:00:39 +00:00
Peter Law
5e990d9206
Support passing through values for non-annotated tuples
2020-02-23 14:00:16 +00:00
Peter Law
80db4dcf56
Add test to ensure unions work
2020-02-23 14:00:16 +00:00
Peter Law
e557129121
Remove check which doesn't seem to be needed
...
I'm not sure why I added this, though removing it doesn't seem to
casue any issues. I suspect there might be some oddness if the type
being passed in doesn't match the type expected, though them having
the same number of generic paramters isn't an expecially great way
to validate that.
2020-02-23 14:00:16 +00:00
Peter Law
c15e0ef9b8
Ensure specialised types inheriting from generics work
2020-02-23 14:00:15 +00:00
Peter Law
e455709a31
Add test case for nested generic callables
2020-02-23 14:00:13 +00:00
Peter Law
c03ae0315e
Make nested Type[T] annotations work
2020-02-23 13:59:44 +00:00
Peter Law
bc53dabce3
Make tuple generic parameters work
2020-02-23 13:59:44 +00:00
Peter Law
969a8f1fd9
First pass at extending infer_type_vars
...
This mostly works for the new tests, but doesn't work for:
- tuples (though this seems to be because they lack generic information anyway)
- nested Type[T] handling (e.g: List[Type[T]])
2020-02-23 13:59:44 +00:00
Peter Law
0a7820f6de
Add many test cases
...
While these definitely _ought_ to work on Python 2.7, the annotation
support there is very limited and as Python 2 is deprecated it
doesn't seem worth it.
2020-02-23 13:58:10 +00:00
Dave Halter
da935baa99
Some more extract improvements
2020-02-23 12:06:37 +01:00
Dave Halter
cc8483a07a
Fix extract issues when self is involved
2020-02-23 11:50:05 +01:00
Dave Halter
48c4262f66
Start trying to find param names
2020-02-23 01:55:43 +01:00
Dave Halter
d069a4e482
Add a test for extraction in a class
2020-02-23 01:41:51 +01:00
Dave Halter
2061919b64
Get staticmethod working
2020-02-23 01:36:45 +01:00
Dave Halter
a7110a4e08
Get a first classmethod extraction working
2020-02-23 00:40:31 +01:00
Dave Halter
b7be5a4fe2
Extract: Correct newlines for classes and make it possible to be on a return/yield statement
2020-02-23 00:24:34 +01:00
Dave Halter
876109267a
Remove is_function_execution, it's not used
2020-02-23 00:16:46 +01:00
Dave Halter
1c0f9e1f30
Extract functions properly out of functions
2020-02-22 21:24:06 +01:00
Peter Law
6efafb348e
Extract the annotation name upfront
...
We almost always need this and this simplifies the code within
each branch. This also means we'll be able to the name to determine
the branching.
2020-02-22 19:42:08 +00:00
Peter Law
36b4b797c1
Add trailing comma
2020-02-22 19:42:08 +00:00
Dave Halter
ce1093406a
Get some first extract_function stuff working
2020-02-22 00:04:11 +01:00
Dave Halter
dcffe8e60b
Some refactorings and final tests for extract variable
2020-02-21 03:15:40 +01:00
Dave Halter
0516637e8d
Fix an extract case about "not"
2020-02-21 03:03:48 +01:00
Dave Halter
3bc66c2f00
Fix some error cases for extract
2020-02-21 02:22:54 +01:00
Dave Halter
742c4370b5
Fix some last extract issues
2020-02-21 01:57:12 +01:00
Dave Halter
292ad9d9ac
Enable extracting of parts of nodes
2020-02-21 01:43:36 +01:00
Dave Halter
3457bd77eb
Make sure that extract variable works for some ranges
2020-02-20 23:34:09 +01:00
Lior Goldberg
1874e9be81
Remove the word 'class' from annotation_string
...
Currently, 'foo(x: int)' results with annotation_string="<class 'int'>".
Change this to 'int'.
2020-02-20 09:35:01 +01:00
Dave Halter
3f86d803d2
Fix another special extract case
2020-02-20 01:29:04 +01:00
Dave Halter
26bf2ceb15
Fix refactoring of leaves just before leaves
2020-02-20 00:43:02 +01:00
Dave Halter
bfa15c61f1
Keyword extraction is now working better
2020-02-19 09:25:59 +01:00
Dave Halter
61619c4db1
Test keyword extraction
2020-02-19 09:20:12 +01:00
Dave Halter
50be49544d
Move indent_block to common
2020-02-19 09:15:39 +01:00
Dave Halter
b1d3c7ef52
Move indent_block to a separate utils
2020-02-18 18:50:40 +01:00
Dave Halter
7dff25f7c9
Test extracing of base classes
2020-02-17 10:06:40 +01:00
Dave Halter
ab4fe548f2
Handle params better for extract variable
2020-02-17 09:55:11 +01:00
Peter Law
c4cf0d78e1
Add a couple of docstrings
...
These are based on observation of the outputs of these functions.
2020-02-15 12:25:12 +01:00
Dave Halter
d1f7400829
First implementation of extract variable
2020-02-15 12:17:29 +01:00
Dave Halter
ee8cdb667d
Make it possible to test refactoring outputs a bit different
2020-02-15 00:59:26 +01:00
Dave Halter
24114ba631
Remove reorder imports. For now this is not a priority
2020-02-14 23:56:11 +01:00