|
414 | 414 | " res = _docments(elt, **kwargs)\n", |
415 | 415 | " if hasattr(elt, \"__delwrap__\"): #for delegates\n", |
416 | 416 | " delwrap_dict = _docments(elt.__delwrap__, **kwargs)\n", |
| 417 | + " verbose = getattr(elt,'__delopts__',{}).get('verbose',True)\n", |
417 | 418 | " for k,v in res.items():\n", |
418 | 419 | " if k in delwrap_dict and v[\"docment\"] is None and k != \"return\":\n", |
419 | 420 | " if delwrap_dict[k][\"docment\"] is not None:\n", |
420 | | - " v[\"docment\"] = delwrap_dict[k][\"docment\"] + f\" passed to `{qual_name(elt.__delwrap__)}`\"\n", |
| 421 | + " v[\"docment\"] = delwrap_dict[k][\"docment\"]\n", |
| 422 | + " if verbose: v[\"docment\"]+=f\" passed to `{qual_name(elt.__delwrap__)}`\"\n", |
421 | 423 | " else: v['docment'] = f\"Argument passed to `{qual_name(elt.__delwrap__)}`\"\n", |
422 | 424 | " \n", |
423 | 425 | " if not full: res = {k:v['docment'] for k,v in res.items()}\n", |
|
906 | 908 | "cell_type": "markdown", |
907 | 909 | "metadata": {}, |
908 | 910 | "source": [ |
909 | | - "Docments even works with `@delegates`:" |
| 911 | + "Docments even works with `delegates`:" |
910 | 912 | ] |
911 | 913 | }, |
912 | 914 | { |
|
915 | 917 | "metadata": {}, |
916 | 918 | "outputs": [], |
917 | 919 | "source": [ |
918 | | - "#|hide\n", |
919 | | - "\n", |
920 | | - "# Test delegates\n", |
921 | | - "from fastcore.meta import delegates\n", |
922 | | - "def _a(\n", |
923 | | - " a:int=2, # First\n", |
924 | | - "):\n", |
925 | | - " return a\n", |
| 920 | + "from fastcore.meta import delegates" |
| 921 | + ] |
| 922 | + }, |
| 923 | + { |
| 924 | + "cell_type": "code", |
| 925 | + "execution_count": null, |
| 926 | + "metadata": {}, |
| 927 | + "outputs": [], |
| 928 | + "source": [ |
| 929 | + "def _a(a:int=2): return a # First\n", |
926 | 930 | "\n", |
927 | 931 | "@delegates(_a)\n", |
928 | | - "def _b(\n", |
929 | | - " b:str, # Second\n", |
930 | | - " **kwargs\n", |
931 | | - "):\n", |
932 | | - " return b, (_a(**kwargs))\n", |
933 | | - "\n", |
934 | | - "def _c(\n", |
935 | | - " b:str, # Second\n", |
936 | | - " a:int=2, # Blah\n", |
937 | | - "):\n", |
938 | | - " return b, a\n", |
939 | | - "@delegates(_c)\n", |
940 | | - "def _d(\n", |
941 | | - " c:int, # First\n", |
942 | | - " b:str,\n", |
943 | | - " **kwargs\n", |
944 | | - "):\n", |
945 | | - " return c, _c(b, **kwargs)" |
| 932 | + "def _b(b:str, **kwargs): return b, (_a(**kwargs)) # Second" |
| 933 | + ] |
| 934 | + }, |
| 935 | + { |
| 936 | + "cell_type": "code", |
| 937 | + "execution_count": null, |
| 938 | + "metadata": {}, |
| 939 | + "outputs": [], |
| 940 | + "source": [ |
| 941 | + "#|hide\n", |
| 942 | + "test_eq(docments(_a, full=True)['a']['docment'],'First')\n", |
| 943 | + "test_eq(docments(_b, full=True)['a']['docment'],'First passed to `_a`')" |
946 | 944 | ] |
947 | 945 | }, |
948 | 946 | { |
|
954 | 952 | "data": { |
955 | 953 | "text/markdown": [ |
956 | 954 | "```json\n", |
957 | | - "{ 'a': {'anno': 'int', 'default': 2, 'docment': 'First'},\n", |
958 | | - " 'return': { 'anno': <class 'inspect._empty'>,\n", |
959 | | - " 'default': <class 'inspect._empty'>,\n", |
960 | | - " 'docment': None}}\n", |
| 955 | + "{'a': 'First passed to `_a`', 'b': 'Second', 'return': None}\n", |
961 | 956 | "```" |
962 | 957 | ], |
963 | 958 | "text/plain": [ |
964 | | - "{'a': {'docment': 'First', 'anno': 'int', 'default': 2},\n", |
965 | | - " 'return': {'docment': None,\n", |
966 | | - " 'anno': inspect._empty,\n", |
967 | | - " 'default': inspect._empty}}" |
| 959 | + "{'b': 'Second', 'a': 'First passed to `_a`', 'return': None}" |
968 | 960 | ] |
969 | 961 | }, |
970 | 962 | "execution_count": null, |
|
973 | 965 | } |
974 | 966 | ], |
975 | 967 | "source": [ |
976 | | - "docments(_a, full=True)" |
| 968 | + "docments(_b)" |
| 969 | + ] |
| 970 | + }, |
| 971 | + { |
| 972 | + "cell_type": "code", |
| 973 | + "execution_count": null, |
| 974 | + "metadata": {}, |
| 975 | + "outputs": [], |
| 976 | + "source": [ |
| 977 | + "#|hide\n", |
| 978 | + "def _c(b:str, # Second\n", |
| 979 | + " a:int=2): return b, a # Third\n", |
| 980 | + "\n", |
| 981 | + "@delegates(_c)\n", |
| 982 | + "def _d(c:int, # First\n", |
| 983 | + " b:str, **kwargs): return c, _c(b, **kwargs)" |
| 984 | + ] |
| 985 | + }, |
| 986 | + { |
| 987 | + "cell_type": "code", |
| 988 | + "execution_count": null, |
| 989 | + "metadata": {}, |
| 990 | + "outputs": [], |
| 991 | + "source": [ |
| 992 | + "#|hide\n", |
| 993 | + "test_eq(docments(_c, full=True)['b']['docment'],'Second')\n", |
| 994 | + "test_eq(docments(_d, full=True)['b']['docment'],'Second passed to `_c`')\n", |
| 995 | + "_argset = {'a', 'b', 'c', 'return'}\n", |
| 996 | + "test_eq(docments(_d, full=True).keys() & _argset, _argset) # _d has the args a,b,c and return" |
| 997 | + ] |
| 998 | + }, |
| 999 | + { |
| 1000 | + "cell_type": "markdown", |
| 1001 | + "metadata": {}, |
| 1002 | + "source": [ |
| 1003 | + "If you pass `verbose=False` to `delegates`, the `'passed to `{func}`'` part will be excluded from docments:" |
| 1004 | + ] |
| 1005 | + }, |
| 1006 | + { |
| 1007 | + "cell_type": "code", |
| 1008 | + "execution_count": null, |
| 1009 | + "metadata": {}, |
| 1010 | + "outputs": [], |
| 1011 | + "source": [ |
| 1012 | + "@delegates(_a, verbose=False)\n", |
| 1013 | + "def _e(b:str, **kwargs): return b, (_a(**kwargs)) # Second, not passed" |
| 1014 | + ] |
| 1015 | + }, |
| 1016 | + { |
| 1017 | + "cell_type": "code", |
| 1018 | + "execution_count": null, |
| 1019 | + "metadata": {}, |
| 1020 | + "outputs": [], |
| 1021 | + "source": [ |
| 1022 | + "#|hide\n", |
| 1023 | + "test_eq(docments(_e, full=True)['a']['docment'],'First')\n", |
| 1024 | + "test_eq(docments(_e, full=True)['b']['docment'],'Second, not passed')" |
977 | 1025 | ] |
978 | 1026 | }, |
979 | 1027 | { |
|
985 | 1033 | "data": { |
986 | 1034 | "text/markdown": [ |
987 | 1035 | "```json\n", |
988 | | - "{ 'a': {'anno': 'int', 'default': 2, 'docment': 'Blah passed to `_c`'},\n", |
989 | | - " 'b': { 'anno': 'str',\n", |
990 | | - " 'default': <class 'inspect._empty'>,\n", |
991 | | - " 'docment': 'Second passed to `_c`'},\n", |
992 | | - " 'c': {'anno': 'int', 'default': <class 'inspect._empty'>, 'docment': 'First'},\n", |
993 | | - " 'return': { 'anno': <class 'inspect._empty'>,\n", |
994 | | - " 'default': <class 'inspect._empty'>,\n", |
995 | | - " 'docment': None}}\n", |
| 1036 | + "{'a': 'First', 'b': 'Second, not passed', 'return': None}\n", |
996 | 1037 | "```" |
997 | 1038 | ], |
998 | 1039 | "text/plain": [ |
999 | | - "{'c': {'docment': 'First', 'anno': 'int', 'default': inspect._empty},\n", |
1000 | | - " 'b': {'docment': 'Second passed to `_c`',\n", |
1001 | | - " 'anno': 'str',\n", |
1002 | | - " 'default': inspect._empty},\n", |
1003 | | - " 'a': {'docment': 'Blah passed to `_c`', 'anno': 'int', 'default': 2},\n", |
1004 | | - " 'return': {'docment': None,\n", |
1005 | | - " 'anno': inspect._empty,\n", |
1006 | | - " 'default': inspect._empty}}" |
| 1040 | + "{'b': 'Second, not passed', 'a': 'First', 'return': None}" |
1007 | 1041 | ] |
1008 | 1042 | }, |
1009 | 1043 | "execution_count": null, |
|
1012 | 1046 | } |
1013 | 1047 | ], |
1014 | 1048 | "source": [ |
1015 | | - "docments(_d, full=True)" |
1016 | | - ] |
1017 | | - }, |
1018 | | - { |
1019 | | - "cell_type": "code", |
1020 | | - "execution_count": null, |
1021 | | - "metadata": {}, |
1022 | | - "outputs": [], |
1023 | | - "source": [ |
1024 | | - "test_eq(docments(_b, full=True)['a']['docment'],'First passed to `_a`')\n", |
1025 | | - "test_eq(docments(_c, full=True)['b']['docment'],'Second')\n", |
1026 | | - "test_eq(docments(_d, full=True)['b']['docment'], 'Second passed to `_c`')\n", |
1027 | | - "_argset = {'a', 'b', 'c', 'return'}\n", |
1028 | | - "test_eq(set(docments(_d, full=True).keys()).intersection(_argset), _argset) # _d has the args a,b,c and return" |
| 1049 | + "docments(_e)" |
1029 | 1050 | ] |
1030 | 1051 | }, |
1031 | 1052 | { |
|
1039 | 1060 | "cell_type": "code", |
1040 | 1061 | "execution_count": null, |
1041 | 1062 | "metadata": {}, |
1042 | | - "outputs": [ |
1043 | | - { |
1044 | | - "name": "stdout", |
1045 | | - "output_type": "stream", |
1046 | | - "text": [ |
1047 | | - "Converted 00_test.ipynb.\n", |
1048 | | - "Converted 01_basics.ipynb.\n", |
1049 | | - "Converted 02_foundation.ipynb.\n", |
1050 | | - "Converted 03_xtras.ipynb.\n", |
1051 | | - "Converted 03a_parallel.ipynb.\n", |
1052 | | - "Converted 03b_net.ipynb.\n", |
1053 | | - "Converted 04_dispatch.ipynb.\n", |
1054 | | - "Converted 05_transform.ipynb.\n", |
1055 | | - "Converted 06_docments.ipynb.\n", |
1056 | | - "Converted 07_meta.ipynb.\n", |
1057 | | - "Converted 08_script.ipynb.\n", |
1058 | | - "Converted index.ipynb.\n", |
1059 | | - "Converted parallel_win.ipynb.\n" |
1060 | | - ] |
1061 | | - } |
1062 | | - ], |
| 1063 | + "outputs": [], |
1063 | 1064 | "source": [ |
1064 | 1065 | "#|hide\n", |
1065 | 1066 | "#|eval: false\n", |
|
0 commit comments