|
23 | 23 | "from contextlib import contextmanager\n", |
24 | 24 | "\n", |
25 | 25 | "from varname import (\n", |
26 | | - " varname, nameof, will, argname, argname2,\n", |
| 26 | + " varname, nameof, will, argname,\n", |
27 | 27 | " config, \n", |
28 | 28 | " ImproperUseError, VarnameRetrievingError, QualnameNonUniqueError\n", |
29 | 29 | ")\n", |
|
369 | 369 | "text": [ |
370 | 370 | "ImproperUseError(Caller doesn't assign the result directly to variable(s).\n", |
371 | 371 | "\n", |
372 | | - " <ipython-input-9-aa71568f2d09>:11:12\n", |
| 372 | + " /tmp/ipykernel_415/1606438573.py:11:12\n", |
373 | 373 | " | 9 @decor\n", |
374 | 374 | " | 10 def func2():\n", |
375 | 375 | " > | 11 return func()\n", |
|
382 | 382 | "name": "stderr", |
383 | 383 | "output_type": "stream", |
384 | 384 | "text": [ |
385 | | - "/home/pwwang/github/python-varname/varname/ignore.py:171: MaybeDecoratedFunctionWarning: You asked varname to ignore function 'wrapper', which may be decorated. If it is not intended, you may need to ignore all intermediate frames with a tuple of the function and the number of its decorators.\n", |
| 385 | + "/home/pwwang/github/python-varname/varname/ignore.py:175: MaybeDecoratedFunctionWarning: You asked varname to ignore function 'wrapper', which may be decorated. If it is not intended, you may need to ignore all intermediate frames with a tuple of the function and the number of its decorators.\n", |
386 | 386 | " warnings.warn(\n" |
387 | 387 | ] |
388 | 388 | } |
|
470 | 470 | "output_type": "stream", |
471 | 471 | "text": [ |
472 | 472 | "[varname] DEBUG: >>> IgnoreList initiated <<<\n", |
473 | | - "[varname] DEBUG: Ignored by IgnoreModule('varname') [In 'varname' at /home/pwwang/github/python-varname/varname/core.py:103]\n", |
| 473 | + "[varname] DEBUG: Ignored by IgnoreModule('varname') [In 'varname' at /home/pwwang/github/python-varname/varname/core.py:106]\n", |
474 | 474 | "[varname] DEBUG: Ignored by IgnoreModule('module_all_calls') [In 'func' at /home/pwwang/github/python-varname/playground/module_all_calls.py:6]\n", |
475 | 475 | "[varname] DEBUG: Ignored by IgnoreModule('module_all_calls') [In 'func2' at /home/pwwang/github/python-varname/playground/module_all_calls.py:9]\n", |
476 | 476 | "[varname] DEBUG: Ignored by IgnoreModule('module_all_calls') [In 'func3' at /home/pwwang/github/python-varname/playground/module_all_calls.py:12]\n", |
477 | | - "[varname] DEBUG: Skipping (0 more to skip) [In 'func' at <ipython-input-11-8d0a7ff1a188>:4]\n", |
478 | | - "[varname] DEBUG: Gotcha! [In '<module>' at <ipython-input-11-8d0a7ff1a188>:7]\n" |
| 477 | + "[varname] DEBUG: Skipping (0 more to skip) [In 'func' at /tmp/ipykernel_415/3068660293.py:4]\n", |
| 478 | + "[varname] DEBUG: Gotcha! [In '<cell line: 6>' at /tmp/ipykernel_415/3068660293.py:7]\n" |
479 | 479 | ] |
480 | 480 | }, |
481 | 481 | { |
|
525 | 525 | "output_type": "stream", |
526 | 526 | "text": [ |
527 | 527 | "[varname] DEBUG: >>> IgnoreList initiated <<<\n", |
528 | | - "[varname] DEBUG: Ignored by IgnoreModule('varname') [In 'varname' at /home/pwwang/github/python-varname/varname/core.py:103]\n", |
| 528 | + "[varname] DEBUG: Ignored by IgnoreModule('varname') [In 'varname' at /home/pwwang/github/python-varname/varname/core.py:106]\n", |
529 | 529 | "[varname] DEBUG: Ignored by IgnoreModuleQualname('module_glob_qualname', '_func*') [In '_func' at /home/pwwang/github/python-varname/playground/module_glob_qualname.py:6]\n", |
530 | 530 | "[varname] DEBUG: Ignored by IgnoreModuleQualname('module_glob_qualname', '_func*') [In '_func2' at /home/pwwang/github/python-varname/playground/module_glob_qualname.py:9]\n", |
531 | 531 | "[varname] DEBUG: Skipping (0 more to skip) [In 'func3' at /home/pwwang/github/python-varname/playground/module_glob_qualname.py:12]\n", |
532 | | - "[varname] DEBUG: Gotcha! [In '<module>' at <ipython-input-12-07ea87f561cc>:4]\n" |
| 532 | + "[varname] DEBUG: Gotcha! [In '<cell line: 3>' at /tmp/ipykernel_415/491507787.py:4]\n" |
533 | 533 | ] |
534 | 534 | }, |
535 | 535 | { |
|
610 | 610 | "output_type": "stream", |
611 | 611 | "text": [ |
612 | 612 | "[varname] DEBUG: >>> IgnoreList initiated <<<\n", |
613 | | - "[varname] DEBUG: Ignored by IgnoreModule('varname') [In 'varname' at /home/pwwang/github/python-varname/varname/core.py:103]\n", |
614 | | - "[varname] DEBUG: Skipping (0 more to skip) [In 'func' at <ipython-input-14-d27bbc23b8df>:2]\n", |
615 | | - "[varname] DEBUG: Ignored by IgnoreOnlyQualname(None, '*<lambda>') [In '<lambda>' at <ipython-input-14-d27bbc23b8df>:4]\n", |
616 | | - "[varname] DEBUG: Gotcha! [In '<module>' at <ipython-input-14-d27bbc23b8df>:7]\n" |
| 613 | + "[varname] DEBUG: Ignored by IgnoreModule('varname') [In 'varname' at /home/pwwang/github/python-varname/varname/core.py:106]\n", |
| 614 | + "[varname] DEBUG: Skipping (0 more to skip) [In 'func' at /tmp/ipykernel_415/2761136102.py:2]\n", |
| 615 | + "[varname] DEBUG: Ignored by IgnoreOnlyQualname(None, '*<lambda>') [In '<lambda>' at /tmp/ipykernel_415/2761136102.py:4]\n", |
| 616 | + "[varname] DEBUG: Gotcha! [In '<cell line: 6>' at /tmp/ipykernel_415/2761136102.py:7]\n" |
617 | 617 | ] |
618 | 618 | }, |
619 | 619 | { |
|
662 | 662 | "output_type": "stream", |
663 | 663 | "text": [ |
664 | 664 | "[varname] DEBUG: >>> IgnoreList initiated <<<\n", |
665 | | - "[varname] DEBUG: Ignored by IgnoreModule('varname') [In 'varname' at /home/pwwang/github/python-varname/varname/core.py:103]\n", |
666 | | - "[varname] DEBUG: Skipping (0 more to skip) [In '__init__' at <ipython-input-15-32fa2de0b542>:8]\n", |
| 665 | + "[varname] DEBUG: Ignored by IgnoreModule('varname') [In 'varname' at /home/pwwang/github/python-varname/varname/core.py:106]\n", |
| 666 | + "[varname] DEBUG: Skipping (0 more to skip) [In '__init__' at /tmp/ipykernel_415/641638691.py:8]\n", |
667 | 667 | "[varname] DEBUG: Ignored by IgnoreStdlib('/home/pwwang/miniconda3/lib/python3.9/') [In '__call__' at /home/pwwang/miniconda3/lib/python3.9/typing.py:670]\n", |
668 | | - "[varname] DEBUG: Gotcha! [In '<module>' at <ipython-input-15-32fa2de0b542>:11]\n" |
| 668 | + "[varname] DEBUG: Gotcha! [In '<cell line: 10>' at /tmp/ipykernel_415/641638691.py:11]\n" |
669 | 669 | ] |
670 | 670 | }, |
671 | 671 | { |
|
805 | 805 | "output_type": "stream", |
806 | 806 | "text": [ |
807 | 807 | "[varname] DEBUG: >>> IgnoreList initiated <<<\n", |
808 | | - "[varname] DEBUG: Ignored by IgnoreModule('varname') [In 'varname' at /home/pwwang/github/python-varname/varname/core.py:103]\n", |
809 | | - "[varname] DEBUG: Ignored by IgnoreDecorated('wrapper', 2) [In 'func' at <ipython-input-18-e7a4675a5e8e>:2]\n", |
810 | | - "[varname] DEBUG: Skipping (1 more to skip) [In 'wrapper' at <ipython-input-18-e7a4675a5e8e>:9]\n", |
811 | | - "[varname] DEBUG: Skipping (0 more to skip) [In 'func3' at <ipython-input-18-e7a4675a5e8e>:18]\n", |
812 | | - "[varname] DEBUG: Gotcha! [In '<module>' at <ipython-input-18-e7a4675a5e8e>:21]\n" |
| 808 | + "[varname] DEBUG: Ignored by IgnoreModule('varname') [In 'varname' at /home/pwwang/github/python-varname/varname/core.py:106]\n", |
| 809 | + "[varname] DEBUG: Ignored by IgnoreDecorated('wrapper', 2) [In 'func' at /tmp/ipykernel_415/652967550.py:2]\n", |
| 810 | + "[varname] DEBUG: Skipping (1 more to skip) [In 'wrapper' at /tmp/ipykernel_415/652967550.py:9]\n", |
| 811 | + "[varname] DEBUG: Skipping (0 more to skip) [In 'func3' at /tmp/ipykernel_415/652967550.py:18]\n", |
| 812 | + "[varname] DEBUG: Gotcha! [In '<cell line: 20>' at /tmp/ipykernel_415/652967550.py:21]\n" |
813 | 813 | ] |
814 | 814 | }, |
815 | 815 | { |
|
988 | 988 | "name": "stderr", |
989 | 989 | "output_type": "stream", |
990 | 990 | "text": [ |
991 | | - "/home/pwwang/github/python-varname/varname/core.py:122: MultiTargetAssignmentWarning: Multiple targets in assignment, variable name on the very right is used. \n", |
| 991 | + "/home/pwwang/github/python-varname/varname/core.py:125: MultiTargetAssignmentWarning: Multiple targets in assignment, variable name on the very right is used. \n", |
992 | 992 | " warnings.warn(\n" |
993 | 993 | ] |
994 | 994 | } |
|
1182 | 1182 | "x\n", |
1183 | 1183 | "('y', 'x')\n", |
1184 | 1184 | "('x+y', 'y+x')\n", |
1185 | | - "('x', 'z')\n" |
| 1185 | + "('x', 'z')\n", |
| 1186 | + "(\"'a'\", '1')\n" |
| 1187 | + ] |
| 1188 | + }, |
| 1189 | + { |
| 1190 | + "name": "stderr", |
| 1191 | + "output_type": "stream", |
| 1192 | + "text": [ |
| 1193 | + "/home/pwwang/github/python-varname/varname/utils.py:418: UsingExecWarning: Cannot evaluate node Attribute(value=Call(func=Name(id='Foo', ctx=Load()), args=[], keywords=[]), attr='__setattr__', ctx=Load()) using 'pure_eval'. Using 'eval' to get the function that calls 'argname'. Try calling it using a variable reference to the function, or passing the function to 'argname' explicitly.\n", |
| 1194 | + " warnings.warn(\n" |
1186 | 1195 | ] |
1187 | 1196 | } |
1188 | 1197 | ], |
|
1211 | 1220 | " # print(argname(args[1], kwargs['c'])) \n", |
1212 | 1221 | " print(argname('args[1]', 'kwargs[c]')) \n", |
1213 | 1222 | "func4(y, x, c=z)\n", |
1214 | | - "\n" |
| 1223 | + "\n", |
| 1224 | + "# As of 0.9.0\n", |
| 1225 | + "# Can also fetch the source of the argument for\n", |
| 1226 | + "# __getattr__/__getitem__/__setattr/__setitem__/__add__/__lt__, etc.\n", |
| 1227 | + "class Foo:\n", |
| 1228 | + " def __setattr__(self, name, value):\n", |
| 1229 | + " print(argname(\"name\", \"value\"))\n", |
| 1230 | + "\n", |
| 1231 | + "Foo().a = 1 # prints: {_out}" |
1215 | 1232 | ] |
1216 | 1233 | }, |
1217 | 1234 | { |
|
1235 | 1252 | } |
1236 | 1253 | ], |
1237 | 1254 | "source": [ |
1238 | | - "# It is easier to wrap argname2\n", |
| 1255 | + "# It is easier to wrap argname\n", |
1239 | 1256 | "# You don't have to use the exact signature\n", |
1240 | 1257 | "def argname3(*args):\n", |
1241 | 1258 | " return argname(*args, frame=2)\n", |
|
1477 | 1494 | } |
1478 | 1495 | ], |
1479 | 1496 | "metadata": { |
1480 | | - "interpreter": { |
1481 | | - "hash": "c4cc73b080e063fcebb9afb794613be7caf4b26129562cba1382945a18cc49cc" |
1482 | | - }, |
1483 | 1497 | "kernelspec": { |
1484 | | - "display_name": "Python 3.9.5 64-bit ('base': conda)", |
| 1498 | + "display_name": "Python 3.9.5 ('base')", |
| 1499 | + "language": "python", |
1485 | 1500 | "name": "python3" |
1486 | 1501 | }, |
1487 | 1502 | "language_info": { |
|
1495 | 1510 | "nbconvert_exporter": "python", |
1496 | 1511 | "pygments_lexer": "ipython3", |
1497 | 1512 | "version": "3.9.5" |
| 1513 | + }, |
| 1514 | + "vscode": { |
| 1515 | + "interpreter": { |
| 1516 | + "hash": "9ed5c94d10bf621c6841991b7e31ffd0f3c8de8ec4167710459737a50edc58e4" |
| 1517 | + } |
1498 | 1518 | } |
1499 | 1519 | }, |
1500 | 1520 | "nbformat": 4, |
|
0 commit comments