Error installing upolygon via python/pip on Windows: "LNK2001: unresolved external symbol _PyGen_Send"

ISSUE:  Error installing upolygon via python/pip on Windows
ERROR: "error LNK2001: unresolved external symbol _PyGen_Send"
OS:

Windows 11
Windows Server 2016 DC

Python v.  3.10.2
Commands that fail:
pip install upolygon

pip install darwin-py

Output:

C:\Windows\system32>where python
C:\Program Files\Python310\python.exe

C:\Windows\system32>python --version
Python 3.10.2

C:\Windows\system32>where link
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64\link.exe

C:\Windows\system32>where pip
C:\Program Files\Python310\Scripts\pip.exe

C:\Windows\system32>pip --version
pip 22.0.4 from C:\Program Files\Python310\lib\site-packages\pip (python 3.10)

C:\Windows\system32>pip install darwin-py
Collecting darwin-py
  Using cached darwin_py-0.7.12-py3-none-any.whl
Collecting rich
  Using cached rich-12.0.1-py3-none-any.whl (224 kB)
Collecting deprecation
  Using cached deprecation-2.1.0-py2.py3-none-any.whl (11 kB)
Requirement already satisfied: pyyaml>=5.1 in c:\program files\python310\lib\site-packages (from darwin-py) (6.0)
Requirement already satisfied: numpy in c:\program files\python310\lib\site-packages (from darwin-py) (1.21.5)
Collecting pydantic
  Using cached pydantic-1.9.0-cp310-cp310-win_amd64.whl (2.1 MB)
Collecting jsonschema
  Using cached jsonschema-4.4.0-py3-none-any.whl (72 kB)
Collecting upolygon==0.1.6
  Using cached upolygon-0.1.6.tar.gz (399 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: pillow in c:\program files\python310\lib\site-packages (from darwin-py) (9.0.1)
Collecting argcomplete
  Using cached argcomplete-2.0.0-py2.py3-none-any.whl (37 kB)
Collecting humanize
  Using cached humanize-4.0.0-py3-none-any.whl (97 kB)
Requirement already satisfied: dataclasses in c:\program files\python310\lib\site-packages (from darwin-py) (0.6)
Requirement already satisfied: requests in c:\program files\python310\lib\site-packages (from darwin-py) (2.27.1)
Requirement already satisfied: packaging in c:\program files\python310\lib\site-packages (from deprecation->darwin-py) (21.3)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in c:\program files\python310\lib\site-packages (from jsonschema->darwin-py) (0.18.1)
Requirement already satisfied: attrs>=17.4.0 in c:\program files\python310\lib\site-packages (from jsonschema->darwin-py) (21.4.0)
Requirement already satisfied: typing-extensions>=<IP_ADDRESS> in c:\program files\python310\lib\site-packages (from pydantic->darwin-py) (4.1.1)
Requirement already satisfied: idna<4,>=2.5 in c:\program files\python310\lib\site-packages (from requests->darwin-py) (3.3)
Requirement already satisfied: certifi>=2017.4.17 in c:\program files\python310\lib\site-packages (from requests->darwin-py) (2021.10.8)
Requirement already satisfied: charset-normalizer~=2.0.0 in c:\program files\python310\lib\site-packages (from requests->darwin-py) (2.0.12)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\program files\python310\lib\site-packages (from requests->darwin-py) (1.26.9)
Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in c:\program files\python310\lib\site-packages (from rich->darwin-py) (0.9.1)
Requirement already satisfied: pygments<3.0.0,>=2.6.0 in c:\program files\python310\lib\site-packages (from rich->darwin-py) (2.11.2)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in c:\program files\python310\lib\site-packages (from packaging->deprecation->darwin-py) (3.0.7)
Building wheels for collected packages: upolygon
  Building wheel for upolygon (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  ¦ exit code: 1
  ?-> [664 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-3.10
      creating build\lib.win-amd64-3.10\upolygon
      copying upolygon\__init__.py -> build\lib.win-amd64-3.10\upolygon
      running build_ext
      building 'draw_polygon' extension
      creating build\temp.win-amd64-3.10
      creating build\temp.win-amd64-3.10\Release
      creating build\temp.win-amd64-3.10\Release\upolygon
      "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD "-IC:\Program Files\Python310\include" "-IC:\Program Files\Python310\Include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /Tcupolygon/draw_polygon.c /Fobuild\temp.win-amd64-3.10\Release\upolygon/draw_polygon.obj -O3 -Wall
      cl : Command line warning D9002 : ignoring unknown option '-O3'
      draw_polygon.c
      C:\Program Files\Python310\include\object.h(219): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'slot'
      C:\Program Files\Python310\include\object.h(227): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'flags'
      C:\Program Files\Python310\include\cpython/object.h(226): warning C4820: '_typeobject': '4' bytes padding added after data member 'tp_flags'
      C:\Program Files\Python310\include\cpython/object.h(271): warning C4820: '_typeobject': '4' bytes padding added after data member 'tp_version_tag'
      C:\Program Files\Python310\include\cpython/bytesobject.h(15): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'ob_sval'
      C:\Program Files\Python310\include\cpython/bytesobject.h(65): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'small_buffer'
      C:\Program Files\Python310\include\cpython/unicodeobject.h(218): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'state'
      C:\Program Files\Python310\include\cpython/unicodeobject.h(623): warning C4820: '<unnamed-tag>': '2' bytes padding added after data member 'readonly'
      C:\Program Files\Python310\include\longintrepr.h(88): warning C4820: '_longobject': '4' bytes padding added after data member 'ob_digit'
      C:\Program Files\Python310\include\memoryobject.h(45): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'flags'
      C:\Program Files\Python310\include\memoryobject.h(62): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'flags'
      C:\Program Files\Python310\include\methodobject.h(40): warning C4820: 'PyMethodDef': '4' bytes padding added after data member 'ml_flags'
      C:\Program Files\Python310\include\moduleobject.h(63): warning C4820: 'PyModuleDef_Slot': '4' bytes padding added after data member 'slot'
      C:\Program Files\Python310\include\cpython/code.h(27): warning C4820: 'PyCodeObject': '4' bytes padding added after data member 'co_firstlineno'
      C:\Program Files\Python310\include\cpython/code.h(64): warning C4820: 'PyCodeObject': '3' bytes padding added after data member 'co_opcache_size'
      C:\Program Files\Python310\include\cpython/code.h(140): warning C4820: '_opaque': '4' bytes padding added after data member 'computed_line'
      C:\Program Files\Python310\include\cpython/code.h(148): warning C4820: '_line_offsets': '4' bytes padding added after data member 'ar_line'
      C:\Program Files\Python310\include\cpython/initconfig.h(16): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member '_type'
      C:\Program Files\Python310\include\cpython/initconfig.h(19): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'exitcode'
      C:\Program Files\Python310\include\cpython/initconfig.h(149): warning C4820: 'PyConfig': '4' bytes padding added after data member 'malloc_stats'
      C:\Program Files\Python310\include\cpython/initconfig.h(153): warning C4820: 'PyConfig': '4' bytes padding added after data member 'parse_argv'
      C:\Program Files\Python310\include\cpython/initconfig.h(170): warning C4820: 'PyConfig': '4' bytes padding added after data member 'buffered_stdio'
      C:\Program Files\Python310\include\cpython/initconfig.h(175): warning C4820: 'PyConfig': '4' bytes padding added after data member 'legacy_windows_stdio'
      C:\Program Files\Python310\include\cpython/initconfig.h(179): warning C4820: 'PyConfig': '4' bytes padding added after data member 'pathconfig_warnings'
      C:\Program Files\Python310\include\cpython/initconfig.h(186): warning C4820: 'PyConfig': '4' bytes padding added after data member 'module_search_paths_set'
      C:\Program Files\Python310\include\cpython/initconfig.h(196): warning C4820: 'PyConfig': '4' bytes padding added after data member 'skip_source_first_line'
      C:\Program Files\Python310\include\cpython/initconfig.h(212): warning C4820: 'PyConfig': '4' bytes padding added after data member '_isolated_interpreter'
      C:\Program Files\Python310\include\cpython/pystate.h(42): warning C4820: '_cframe': '4' bytes padding added after data member 'use_tracing'
      C:\Program Files\Python310\include\cpython/pystate.h(105): warning C4820: '_ts': '4' bytes padding added after data member 'gilstate_counter'
      C:\Program Files\Python310\include\cpython/pystate.h(139): warning C4820: '_ts': '4' bytes padding added after data member 'coroutine_origin_tracking_depth'
      C:\Program Files\Python310\include\genobject.h(78): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'ag_running_async'
      C:\Program Files\Python310\include\descrobject.h(29): warning C4820: 'wrapperbase': '4' bytes padding added after data member 'offset'
      C:\Program Files\Python310\include\descrobject.h(33): warning C4820: 'wrapperbase': '4' bytes padding added after data member 'flags'
      C:\Program Files\Python310\include\structseq.h(20): warning C4820: 'PyStructSequence_Desc': '4' bytes padding added after data member 'n_in_sequence'
      C:\Program Files\Python310\include\cpython/pytime.h(120): warning C4115: 'timeval': named type definition in parentheses
      C:\Program Files\Python310\include\cpython/pyerrors.h(15): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(19): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(31): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(38): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(47): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(52): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(64): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(69): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(74): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\modsupport.h(100): warning C4820: '_PyArg_Parser': '4' bytes padding added after data member 'max'
      C:\Program Files\Python310\include\cpython/import.h(38): warning C4820: '_frozen': '4' bytes padding added after data member 'size'
      C:\Program Files\Python310\include\cpython/fileutils.h(57): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_dev'
      C:\Program Files\Python310\include\cpython/fileutils.h(59): warning C4820: '_Py_stat_struct': '2' bytes padding added after data member 'st_mode'
      C:\Program Files\Python310\include\cpython/fileutils.h(63): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_rdev'
      C:\Program Files\Python310\include\cpython/fileutils.h(66): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_atime_nsec'
      C:\Program Files\Python310\include\cpython/fileutils.h(68): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_mtime_nsec'
      C:\Program Files\Python310\include\cpython/fileutils.h(72): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_reparse_tag'
      upolygon/draw_polygon.c(636): warning C4820: '<unnamed-tag>': '5' bytes padding added after data member 'intern'
      upolygon/draw_polygon.c(855): warning C4668: '__GNUC__' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
      upolygon/draw_polygon.c(922): warning C4820: '<unnamed-tag>': '2' bytes padding added after data member 'is_unsigned'
      upolygon/draw_polygon.c(923): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'flags'
      upolygon/draw_polygon.c(1182): warning C4820: '__pyx_array_obj': '4' bytes padding added after data member 'ndim'
      C:\Program Files\Python310\include\cpython/frameobject.h(42): warning C4820: '_frame': '2' bytes padding added after data member 'f_trace_opcodes'
      C:\Program Files\Python310\include\cpython/frameobject.h(48): warning C4820: '_frame': '3' bytes padding added after data member 'f_state'
      upolygon/draw_polygon.c(1902): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'defaults_pyobjects'
      upolygon/draw_polygon.c(1904): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'flags'
      upolygon/draw_polygon.c(1954): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'code_line'
      upolygon/draw_polygon.c(2149): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'is_running'
      upolygon/draw_polygon.c(3512): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(3593): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(3674): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(3755): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(3836): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(3917): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(4237): warning C4242: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(4238): warning C4242: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data
...
      upolygon/draw_polygon.c(8488): warning C4242: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(8488): warning C4242: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(9041): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(9139): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(9174): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(9359): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(9396): warning C4244: '=': conversion from 'Py_ssize_t' to 'float', possible loss of data
      upolygon/draw_polygon.c(9515): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(9613): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(9648): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(9833): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(9870): warning C4244: '=': conversion from 'Py_ssize_t' to 'float', possible loss of data
      upolygon/draw_polygon.c(9989): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(10087): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(10122): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(10307): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(10344): warning C4244: '=': conversion from 'Py_ssize_t' to 'float', possible loss of data
      upolygon/draw_polygon.c(10463): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(10561): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(10596): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(10781): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(10818): warning C4244: '=': conversion from 'Py_ssize_t' to 'float', possible loss of data
      upolygon/draw_polygon.c(10937): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(11035): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(11070): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(11255): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(11292): warning C4244: '=': conversion from 'Py_ssize_t' to 'float', possible loss of data
      upolygon/draw_polygon.c(11411): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(11509): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(11544): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(11729): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(11766): warning C4244: '=': conversion from 'Py_ssize_t' to 'float', possible loss of data
      upolygon/draw_polygon.c(12194): warning C4242: '=': conversion from 'long' to 'char', possible loss of data
      upolygon/draw_polygon.c(12219): warning C4310: cast truncates constant value
...
      upolygon/draw_polygon.c(12474): warning C4310: cast truncates constant value
      upolygon/draw_polygon.c(11989): warning C4100: '__pyx_v_defaults': unreferenced formal parameter
      upolygon/draw_polygon.c(11989): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(12785): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(12754): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(12935): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(13069): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(12844): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(13600): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(13569): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(13750): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(13884): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(13659): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(14415): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(14384): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(14565): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(14699): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(14474): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(15230): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(15199): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(15380): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(15514): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(15289): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(16045): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(16014): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(16195): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(16329): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(16104): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(16860): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(16829): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(17010): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(17144): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(16919): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(17907): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(18199): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(19106): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(19117): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(19174): warning C4100: '__pyx_v___pyx_state': unreferenced formal parameter
      upolygon/draw_polygon.c(19174): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(19540): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(20574): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(20582): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(21613): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(21625): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(21884): warning C4310: cast truncates constant value
      upolygon/draw_polygon.c(23647): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(23723): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(23799): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(23893): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(23986): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(23997): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(24054): warning C4100: '__pyx_v___pyx_state': unreferenced formal parameter
      upolygon/draw_polygon.c(24054): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(24356): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(24364): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(24968): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(24976): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(26195): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(26887): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(26898): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(26955): warning C4100: '__pyx_v___pyx_state': unreferenced formal parameter
      upolygon/draw_polygon.c(26955): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(30221): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(30439): warning C4310: cast truncates constant value
      upolygon/draw_polygon.c(30484): warning C4310: cast truncates constant value
      upolygon/draw_polygon.c(30539): warning C4100: 'k': unreferenced formal parameter
      upolygon/draw_polygon.c(30539): warning C4100: 'a': unreferenced formal parameter
...
      upolygon/draw_polygon.c(32533): warning C4100: 'x': unreferenced formal parameter
      upolygon/draw_polygon.c(33422): warning C4100: 'def': unreferenced formal parameter
      upolygon/draw_polygon.c(33889): warning C4100: 'filename': unreferenced formal parameter
      upolygon/draw_polygon.c(33889): warning C4100: 'lineno': unreferenced formal parameter
      upolygon/draw_polygon.c(33888): warning C4100: 'clineno': unreferenced formal parameter
      upolygon/draw_polygon.c(35158): warning C4456: declaration of 'args' hides previous local declaration
      upolygon/draw_polygon.c(35155): note: see declaration of 'args'
      upolygon/draw_polygon.c(35164): warning C4456: declaration of 'args' hides previous local declaration
      upolygon/draw_polygon.c(35155): note: see declaration of 'args'
      upolygon/draw_polygon.c(35407): warning C4389: '!=': signed/unsigned mismatch
      upolygon/draw_polygon.c(35942): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(35946): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(35953): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(35957): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(35964): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(35968): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(35975): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(35979): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(35986): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(35990): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(35997): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(36001): warning C4127: conditional expression is constant
      C:\Program Files\Python310\include\structmember.h(21): warning C4820: 'PyMemberDef': '4' bytes padding added after data member 'type'
      C:\Program Files\Python310\include\structmember.h(23): warning C4820: 'PyMemberDef': '4' bytes padding added after data member 'flags'
      upolygon/draw_polygon.c(36295): warning C4100: 'closure': unreferenced formal parameter
      upolygon/draw_polygon.c(36315): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36327): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36342): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36362): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36368): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36388): warning C4100: 'closure': unreferenced formal parameter
      upolygon/draw_polygon.c(36398): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36409): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36429): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36435): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36435): warning C4100: 'op': unreferenced formal parameter
      upolygon/draw_polygon.c(36441): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36470): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36486): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36500): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36516): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36530): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36546): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36582): warning C4100: 'args': unreferenced formal parameter
      upolygon/draw_polygon.c(37679): warning C4820: '<unnamed-tag>': '1' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37680): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37681): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37682): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37683): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37684): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37685): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37687): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37689): warning C4100: 'is_complex': unreferenced formal parameter
      upolygon/draw_polygon.c(37711): warning C4820: '<unnamed-tag>': '1' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37712): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37713): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37714): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37715): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37716): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37717): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37719): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37721): warning C4100: 'is_complex': unreferenced formal parameter
      upolygon/draw_polygon.c(38161): warning C4100: 'ndim': unreferenced formal parameter
     ...

      upolygon/draw_polygon.c(39889): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(39890): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(40077): warning C4100: 'gen': unreferenced formal parameter
      upolygon/draw_polygon.c(40094): warning C4100: 'gen': unreferenced formal parameter
      upolygon/draw_polygon.c(40111): warning C4100: 'closing': unreferenced formal parameter
      upolygon/draw_polygon.c(40111): warning C4100: 'gen': unreferenced formal parameter
      upolygon/draw_polygon.c(40194): warning C4100: 'gen': unreferenced formal parameter
      upolygon/draw_polygon.c(40245): warning C4013: '_PyGen_Send' undefined; assuming extern returning int
      upolygon/draw_polygon.c(40245): warning C4047: '=': 'PyObject *' differs in levels of indirection from 'int'
      upolygon/draw_polygon.c(40250): warning C4047: '=': 'PyObject *' differs in levels of indirection from 'int'
      upolygon/draw_polygon.c(40334): warning C4047: '=': 'PyObject *' differs in levels of indirection from 'int'
      upolygon/draw_polygon.c(40351): warning C4100: 'arg': unreferenced formal parameter
      upolygon/draw_polygon.c(40625): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(40633): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(40653): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(40661): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(41136): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(41141): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(41146): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(41151): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(41156): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(41161): warning C4127: conditional expression is constant
      "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\link.exe" /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO "/LIBPATH:C:\Program Files\Python310\libs" "/LIBPATH:C:\Program Files\Python310" "/LIBPATH:C:\Program Files\Python310\PCbuild\amd64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64" /EXPORT:PyInit_draw_polygon build\temp.win-amd64-3.10\Release\upolygon/draw_polygon.obj /OUT:build\lib.win-amd64-3.10\draw_polygon.cp310-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.10\Release\upolygon\draw_polygon.cp310-win_amd64.lib
         Creating library build\temp.win-amd64-3.10\Release\upolygon\draw_polygon.cp310-win_amd64.lib and object build\temp.win-amd64-3.10\Release\upolygon\draw_polygon.cp310-win_amd64.exp
      draw_polygon.obj : error LNK2001: unresolved external symbol _PyGen_Send
      build\lib.win-amd64-3.10\draw_polygon.cp310-win_amd64.pyd : fatal error LNK1120: 1 unresolved externals
      error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX86\\x64\\link.exe' failed with exit code 1120
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for upolygon
  Running setup.py clean for upolygon
Failed to build upolygon
Installing collected packages: upolygon, rich, pydantic, jsonschema, humanize, argcomplete, deprecation, darwin-py
  Running setup.py install for upolygon ... error
  error: subprocess-exited-with-error

  × Running setup.py install for upolygon did not run successfully.
  ¦ exit code: 1
  ?-> [666 lines of output]
      running install
      C:\Program Files\Python310\lib\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-3.10
      creating build\lib.win-amd64-3.10\upolygon
      copying upolygon\__init__.py -> build\lib.win-amd64-3.10\upolygon
      running build_ext
      building 'draw_polygon' extension
      creating build\temp.win-amd64-3.10
      creating build\temp.win-amd64-3.10\Release
      creating build\temp.win-amd64-3.10\Release\upolygon
      "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD "-IC:\Program Files\Python310\include" "-IC:\Program Files\Python310\Include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /Tcupolygon/draw_polygon.c /Fobuild\temp.win-amd64-3.10\Release\upolygon/draw_polygon.obj -O3 -Wall
      cl : Command line warning D9002 : ignoring unknown option '-O3'
      draw_polygon.c
      C:\Program Files\Python310\include\object.h(219): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'slot'
      C:\Program Files\Python310\include\object.h(227): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'flags'
      C:\Program Files\Python310\include\cpython/object.h(226): warning C4820: '_typeobject': '4' bytes padding added after data member 'tp_flags'
      C:\Program Files\Python310\include\cpython/object.h(271): warning C4820: '_typeobject': '4' bytes padding added after data member 'tp_version_tag'
      C:\Program Files\Python310\include\cpython/bytesobject.h(15): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'ob_sval'
      C:\Program Files\Python310\include\cpython/bytesobject.h(65): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'small_buffer'
      C:\Program Files\Python310\include\cpython/unicodeobject.h(218): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'state'
      C:\Program Files\Python310\include\cpython/unicodeobject.h(623): warning C4820: '<unnamed-tag>': '2' bytes padding added after data member 'readonly'
      C:\Program Files\Python310\include\longintrepr.h(88): warning C4820: '_longobject': '4' bytes padding added after data member 'ob_digit'
      C:\Program Files\Python310\include\memoryobject.h(45): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'flags'
      C:\Program Files\Python310\include\memoryobject.h(62): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'flags'
      C:\Program Files\Python310\include\methodobject.h(40): warning C4820: 'PyMethodDef': '4' bytes padding added after data member 'ml_flags'
      C:\Program Files\Python310\include\moduleobject.h(63): warning C4820: 'PyModuleDef_Slot': '4' bytes padding added after data member 'slot'
      C:\Program Files\Python310\include\cpython/code.h(27): warning C4820: 'PyCodeObject': '4' bytes padding added after data member 'co_firstlineno'
      C:\Program Files\Python310\include\cpython/code.h(64): warning C4820: 'PyCodeObject': '3' bytes padding added after data member 'co_opcache_size'
      C:\Program Files\Python310\include\cpython/code.h(140): warning C4820: '_opaque': '4' bytes padding added after data member 'computed_line'
      C:\Program Files\Python310\include\cpython/code.h(148): warning C4820: '_line_offsets': '4' bytes padding added after data member 'ar_line'
      C:\Program Files\Python310\include\cpython/initconfig.h(16): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member '_type'
      C:\Program Files\Python310\include\cpython/initconfig.h(19): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'exitcode'
      C:\Program Files\Python310\include\cpython/initconfig.h(149): warning C4820: 'PyConfig': '4' bytes padding added after data member 'malloc_stats'
      C:\Program Files\Python310\include\cpython/initconfig.h(153): warning C4820: 'PyConfig': '4' bytes padding added after data member 'parse_argv'
      C:\Program Files\Python310\include\cpython/initconfig.h(170): warning C4820: 'PyConfig': '4' bytes padding added after data member 'buffered_stdio'
      C:\Program Files\Python310\include\cpython/initconfig.h(175): warning C4820: 'PyConfig': '4' bytes padding added after data member 'legacy_windows_stdio'
      C:\Program Files\Python310\include\cpython/initconfig.h(179): warning C4820: 'PyConfig': '4' bytes padding added after data member 'pathconfig_warnings'
      C:\Program Files\Python310\include\cpython/initconfig.h(186): warning C4820: 'PyConfig': '4' bytes padding added after data member 'module_search_paths_set'
      C:\Program Files\Python310\include\cpython/initconfig.h(196): warning C4820: 'PyConfig': '4' bytes padding added after data member 'skip_source_first_line'
      C:\Program Files\Python310\include\cpython/initconfig.h(212): warning C4820: 'PyConfig': '4' bytes padding added after data member '_isolated_interpreter'
      C:\Program Files\Python310\include\cpython/pystate.h(42): warning C4820: '_cframe': '4' bytes padding added after data member 'use_tracing'
      C:\Program Files\Python310\include\cpython/pystate.h(105): warning C4820: '_ts': '4' bytes padding added after data member 'gilstate_counter'
      C:\Program Files\Python310\include\cpython/pystate.h(139): warning C4820: '_ts': '4' bytes padding added after data member 'coroutine_origin_tracking_depth'
      C:\Program Files\Python310\include\genobject.h(78): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'ag_running_async'
      C:\Program Files\Python310\include\descrobject.h(29): warning C4820: 'wrapperbase': '4' bytes padding added after data member 'offset'
      C:\Program Files\Python310\include\descrobject.h(33): warning C4820: 'wrapperbase': '4' bytes padding added after data member 'flags'
      C:\Program Files\Python310\include\structseq.h(20): warning C4820: 'PyStructSequence_Desc': '4' bytes padding added after data member 'n_in_sequence'
      C:\Program Files\Python310\include\cpython/pytime.h(120): warning C4115: 'timeval': named type definition in parentheses
      C:\Program Files\Python310\include\cpython/pyerrors.h(15): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(19): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(31): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(38): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(47): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(52): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(64): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(69): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\cpython/pyerrors.h(74): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'suppress_context'
      C:\Program Files\Python310\include\modsupport.h(100): warning C4820: '_PyArg_Parser': '4' bytes padding added after data member 'max'
      C:\Program Files\Python310\include\cpython/import.h(38): warning C4820: '_frozen': '4' bytes padding added after data member 'size'
      C:\Program Files\Python310\include\cpython/fileutils.h(57): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_dev'
      C:\Program Files\Python310\include\cpython/fileutils.h(59): warning C4820: '_Py_stat_struct': '2' bytes padding added after data member 'st_mode'
      C:\Program Files\Python310\include\cpython/fileutils.h(63): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_rdev'
      C:\Program Files\Python310\include\cpython/fileutils.h(66): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_atime_nsec'
      C:\Program Files\Python310\include\cpython/fileutils.h(68): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_mtime_nsec'
      C:\Program Files\Python310\include\cpython/fileutils.h(72): warning C4820: '_Py_stat_struct': '4' bytes padding added after data member 'st_reparse_tag'
      upolygon/draw_polygon.c(636): warning C4820: '<unnamed-tag>': '5' bytes padding added after data member 'intern'
      upolygon/draw_polygon.c(855): warning C4668: '__GNUC__' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
      upolygon/draw_polygon.c(922): warning C4820: '<unnamed-tag>': '2' bytes padding added after data member 'is_unsigned'
      upolygon/draw_polygon.c(923): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'flags'
      upolygon/draw_polygon.c(1182): warning C4820: '__pyx_array_obj': '4' bytes padding added after data member 'ndim'
      C:\Program Files\Python310\include\cpython/frameobject.h(42): warning C4820: '_frame': '2' bytes padding added after data member 'f_trace_opcodes'
      C:\Program Files\Python310\include\cpython/frameobject.h(48): warning C4820: '_frame': '3' bytes padding added after data member 'f_state'
      upolygon/draw_polygon.c(1902): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'defaults_pyobjects'
      upolygon/draw_polygon.c(1904): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'flags'
      upolygon/draw_polygon.c(1954): warning C4820: '<unnamed-tag>': '4' bytes padding added after data member 'code_line'
      upolygon/draw_polygon.c(2149): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'is_running'
      upolygon/draw_polygon.c(3512): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data

      upolygon/draw_polygon.c(4237): warning C4242: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data
...
      upolygon/draw_polygon.c(8488): warning C4242: 'function': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(9041): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(9139): warning C4244: '=': conversion from 'double' to 'float', possible loss of data

      upolygon/draw_polygon.c(9870): warning C4244: '=': conversion from 'Py_ssize_t' to 'float', possible loss of data
      upolygon/draw_polygon.c(9989): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(10087): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(10122): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(10307): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
      upolygon/draw_polygon.c(10344): warning C4244: '=': conversion from 'Py_ssize_t' to 'float', possible loss of data

      upolygon/draw_polygon.c(11766): warning C4244: '=': conversion from 'Py_ssize_t' to 'float', possible loss of data
      upolygon/draw_polygon.c(12194): warning C4242: '=': conversion from 'long' to 'char', possible loss of data
      upolygon/draw_polygon.c(12219): warning C4310: cast truncates constant value
      upolygon/draw_polygon.c(12242): warning C4310: cast truncates constant value

      upolygon/draw_polygon.c(12474): warning C4310: cast truncates constant value
      upolygon/draw_polygon.c(11989): warning C4100: '__pyx_v_defaults': unreferenced formal parameter
      upolygon/draw_polygon.c(11989): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(12785): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(12754): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(12935): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(13069): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(12844): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(13600): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(13569): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(13750): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(13884): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(13659): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(14415): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(14384): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(14565): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(14699): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(14474): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(15230): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(15199): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(15380): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(15514): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(15289): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(16045): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(16014): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(16195): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(16329): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(16104): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(16860): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(16829): warning C4100: '__pyx_tstate': unreferenced formal parameter
      upolygon/draw_polygon.c(17010): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(17144): warning C4242: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
      upolygon/draw_polygon.c(16919): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(17907): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(18199): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(19106): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(19117): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(19174): warning C4100: '__pyx_v___pyx_state': unreferenced formal parameter
      upolygon/draw_polygon.c(19174): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(19540): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(20574): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(20582): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(21613): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(21625): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(21884): warning C4310: cast truncates constant value
      upolygon/draw_polygon.c(23647): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(23723): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(23799): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(23893): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(23986): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(23997): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(24054): warning C4100: '__pyx_v___pyx_state': unreferenced formal parameter
      upolygon/draw_polygon.c(24054): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(24356): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(24364): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(24968): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(24976): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(26195): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(26887): warning C4100: 'unused': unreferenced formal parameter
      upolygon/draw_polygon.c(26898): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(26955): warning C4100: '__pyx_v___pyx_state': unreferenced formal parameter
      upolygon/draw_polygon.c(26955): warning C4100: '__pyx_v_self': unreferenced formal parameter
      upolygon/draw_polygon.c(30221): warning C4100: '__pyx_self': unreferenced formal parameter
      upolygon/draw_polygon.c(30439): warning C4310: cast truncates constant value
      upolygon/draw_polygon.c(30484): warning C4310: cast truncates constant value
      upolygon/draw_polygon.c(30539): warning C4100: 'k': unreferenced formal parameter
...
      upolygon/draw_polygon.c(32533): warning C4100: 'x': unreferenced formal parameter
      upolygon/draw_polygon.c(33422): warning C4100: 'def': unreferenced formal parameter
      upolygon/draw_polygon.c(33889): warning C4100: 'filename': unreferenced formal parameter
      upolygon/draw_polygon.c(33889): warning C4100: 'lineno': unreferenced formal parameter
      upolygon/draw_polygon.c(33888): warning C4100: 'clineno': unreferenced formal parameter
      upolygon/draw_polygon.c(35158): warning C4456: declaration of 'args' hides previous local declaration
      upolygon/draw_polygon.c(35155): note: see declaration of 'args'
      upolygon/draw_polygon.c(35164): warning C4456: declaration of 'args' hides previous local declaration
      upolygon/draw_polygon.c(35155): note: see declaration of 'args'
      upolygon/draw_polygon.c(35407): warning C4389: '!=': signed/unsigned mismatch
      upolygon/draw_polygon.c(35942): warning C4127: conditional expression is constant

      upolygon/draw_polygon.c(35997): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(36001): warning C4127: conditional expression is constant
      C:\Program Files\Python310\include\structmember.h(21): warning C4820: 'PyMemberDef': '4' bytes padding added after data member 'type'
      C:\Program Files\Python310\include\structmember.h(23): warning C4820: 'PyMemberDef': '4' bytes padding added after data member 'flags'
      upolygon/draw_polygon.c(36295): warning C4100: 'closure': unreferenced formal parameter

      upolygon/draw_polygon.c(36435): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36435): warning C4100: 'op': unreferenced formal parameter
      upolygon/draw_polygon.c(36441): warning C4100: 'context': unreferenced formal parameter

      upolygon/draw_polygon.c(36546): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(36582): warning C4100: 'args': unreferenced formal parameter
      upolygon/draw_polygon.c(37679): warning C4820: '<unnamed-tag>': '1' bytes padding added after data member 'c'

      upolygon/draw_polygon.c(37685): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37687): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37689): warning C4100: 'is_complex': unreferenced formal parameter
      upolygon/draw_polygon.c(37711): warning C4820: '<unnamed-tag>': '1' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37712): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37713): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37714): warning C4820: '<unnamed-tag>': '3' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37715): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37716): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37717): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37719): warning C4820: '<unnamed-tag>': '7' bytes padding added after data member 'c'
      upolygon/draw_polygon.c(37721): warning C4100: 'is_complex': unreferenced formal parameter
      upolygon/draw_polygon.c(38161): warning C4100: 'ndim': unreferenced formal parameter
      upolygon/draw_polygon.c(38452): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(38454): warning C4127: conditional expression is constant
...
      upolygon/draw_polygon.c(39889): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(39890): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(40077): warning C4100: 'gen': unreferenced formal parameter
      upolygon/draw_polygon.c(40094): warning C4100: 'gen': unreferenced formal parameter
      upolygon/draw_polygon.c(40111): warning C4100: 'closing': unreferenced formal parameter
      upolygon/draw_polygon.c(40111): warning C4100: 'gen': unreferenced formal parameter
      upolygon/draw_polygon.c(40194): warning C4100: 'gen': unreferenced formal parameter
      upolygon/draw_polygon.c(40245): warning C4013: '_PyGen_Send' undefined; assuming extern returning int
      upolygon/draw_polygon.c(40245): warning C4047: '=': 'PyObject *' differs in levels of indirection from 'int'
      upolygon/draw_polygon.c(40250): warning C4047: '=': 'PyObject *' differs in levels of indirection from 'int'
      upolygon/draw_polygon.c(40334): warning C4047: '=': 'PyObject *' differs in levels of indirection from 'int'
      upolygon/draw_polygon.c(40351): warning C4100: 'arg': unreferenced formal parameter
      upolygon/draw_polygon.c(40625): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(40633): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(40653): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(40661): warning C4100: 'context': unreferenced formal parameter
      upolygon/draw_polygon.c(41136): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(41141): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(41146): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(41151): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(41156): warning C4127: conditional expression is constant
      upolygon/draw_polygon.c(41161): warning C4127: conditional expression is constant
      "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\link.exe" /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO "/LIBPATH:C:\Program Files\Python310\libs" "/LIBPATH:C:\Program Files\Python310" "/LIBPATH:C:\Program Files\Python310\PCbuild\amd64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64" /EXPORT:PyInit_draw_polygon build\temp.win-amd64-3.10\Release\upolygon/draw_polygon.obj /OUT:build\lib.win-amd64-3.10\draw_polygon.cp310-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.10\Release\upolygon\draw_polygon.cp310-win_amd64.lib
         Creating library build\temp.win-amd64-3.10\Release\upolygon\draw_polygon.cp310-win_amd64.lib and object build\temp.win-amd64-3.10\Release\upolygon\draw_polygon.cp310-win_amd64.exp
      draw_polygon.obj : error LNK2001: unresolved external symbol _PyGen_Send
      build\lib.win-amd64-3.10\draw_polygon.cp310-win_amd64.pyd : fatal error LNK1120: 1 unresolved externals
      error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX86\\x64\\link.exe' failed with exit code 1120
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
?-> upolygon

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

C:\Windows\system32>

Sorry for the late reply, but this should now be resolved as we have updated upolygon to support 3.10.
Let me know if you have any further issues.


Change TypedDataFrame final example

Current coverage is 89.86% (diff: 100%)

Merging #61 into master will not change coverage

@@             master        #61   diff @@
==========================================
  Files            23         23
  Lines           454        454
  Methods         448        448
  Messages          0          0
  Branches          6          6
==========================================
  Hits            408        408
  Misses           46         46
  Partials          0          0

Powered by Codecov. Last update 3753741...20c2742

:+1:


V4: Unable to override style properties in @shopify/flashlist

Describe the bug
ListHeaderComponentClassName doesn't work. Tried using remapProps or cssInterop but still no success.
To Reproduce
Steps to reproduce the behavior:

Follow instruction to install Flashlist: https://github.com/Shopify/flash-list
Use in App.tsx

import React from "react";
import { View, Text } from "react-native";
import { FlashList } from "@shopify/flash-list";

const DATA = [
  {
    title: "First Item",
  },
  {
    title: "Second Item",
  },
];

const MyList = () => {
  return (
    <FlashList
      data={DATA}
      renderItem={({ item }) => <Text>{item.title}</Text>}
      estimatedItemSize={200}
      ListHeaderComponentClassName="px-24" // <--- This will show Property ListHeaderComponentClassName does not exist on type
    />
  );
};

Expected behavior
Work similar to FlatList or remapProps / cssInterop to work with Flashlist
Screenshots

Additional context
I checked the expected type for both FlatList and FlashList and found that FlashList is expecting value that satisfies
link
ListHeaderComponentStyle?: StyleProp<ViewStyle>;

instead of FlatList's
ListHeaderComponentStyle?: ViewStyle;

This might be fixed by #690 if you're using 4.0.16

We are closing all pre-v4.1 issues now that v4.1 is released. If the problem is still happening with the latest v4.1, please open a new issue and reference this one in the description.


after 2.9 upgrade, nfo files moved to .deletedbyTMM  instead of copied to movie folder

What TMM version are you using?
=== tinyMediaManager (c) 2012-2016 Manuel Laggner ===
tmm.version      : 2.9
os.name          : Linux
os.version       : 3.16.0-0.bpo.4-686-pae
os.arch          : i386
java.version     : 1.7.0_111
release, pre-release, nightly, or directly from GitHub/branch?
release
What is the actual behaviour?
*.nfo files get deleted after scraping and cleanup
What is the expected behaviour?
*.nfo files should end in the created movie folder, together with movie file and the artwork
Steps to reproduce:

update data sources
search&scrape new movie
rename/cleanup new movies
2016-11-01 02:31:23,277 DEBUG [main] org.tinymediamanager.core.Utils:727 - try to move file /home/horst/mnt/temp/AllNew/Mediathek/Harms.mp4 to /home/horst/mnt/temp/AllNew/Mediathek/Harms/Harms.mp4
2016-11-01 02:31:23,278 INFO  [main] org.tinymediamanager.core.Utils:782 - Successfully moved file from /home/horst/mnt/temp/AllNew/Mediathek/Harms.mp4 to /home/horst/mnt/temp/AllNew/Mediathek/Harms/Harms.mp4
2016-11-01 02:31:23,323 INFO  [main] o.t.core.movie.MovieRenamer:542 - Cleanup...
2016-11-01 02:31:23,324 DEBUG [main] o.t.core.movie.MovieRenamer:559 - Deleting /home/horst/mnt/temp/AllNew/Mediathek/Harms.nfo
2016-11-01 02:31:23,327 DEBUG [main] org.tinymediamanager.core.Utils:727 - try to move file /home/horst/mnt/temp/AllNew/Mediathek/Harms.nfo to /home/horst/mnt/temp/AllNew/Mediathek/.deletedByTMM/Harms.nfo
2016-11-01 02:31:23,328 INFO  [main] org.tinymediamanager.core.Utils:782 - Successfully moved file from /home/horst/mnt/temp/AllNew/Mediathek/Harms.nfo to /home/horst/mnt/temp/AllNew/Mediathek/.deletedByTMM/Harms.nfo

You see, the nfo is ony MOVED to .deletedByTMM. This "try to copy" line is missed in 2.9
log from old 2.8 last week, when it worked as expected
2016-10-26 01:53:50,530 DEBUG [main] org.tinymediamanager.core.Utils:723 - try to move file /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht.mp4 to /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht/Ein Mann unter Verdacht.mp4
2016-10-26 01:53:50,531 INFO  [main] org.tinymediamanager.core.Utils:778 - Successfully moved file from /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht.mp4 to /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht/Ein Mann unter Verdacht.mp4
2016-10-26 01:53:50,542 INFO  [main] o.t.core.movie.MovieRenamer:1242 - copy file /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht.nfo to /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht/Ein Mann unter Verdacht.nfo
2016-10-26 01:53:50,543 DEBUG [main] org.tinymediamanager.core.Utils:834 - try to copy file /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht.nfo to /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht/Ein Mann unter Verdacht.nfo
2016-10-26 01:53:50,546 INFO  [main] org.tinymediamanager.core.Utils:881 - Successfully moved file from /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht.nfo to /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht/Ein Mann unter Verdacht.nfo
2016-10-26 01:53:50,570 INFO  [main] o.t.core.movie.MovieRenamer:544 - Cleanup...
2016-10-26 01:53:50,571 DEBUG [main] o.t.core.movie.MovieRenamer:561 - Deleting /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht.nfo
2016-10-26 01:53:50,573 DEBUG [main] org.tinymediamanager.core.Utils:723 - try to move file /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht.nfo to /home/horst/mnt/temp/AllNew/Mediathek/.deletedByTMM/Ein Mann unter Verdacht.nfo
2016-10-26 01:53:50,573 INFO  [main] org.tinymediamanager.core.Utils:778 - Successfully moved file from /home/horst/mnt/temp/AllNew/Mediathek/Ein Mann unter Verdacht.nfo to /home/horst/mnt/temp/AllNew/Mediathek/.deletedByTMM/Ein Mann unter Verdacht.nfo
Additional
Have you attached the Logfile from the day it happened?
yep
tmm.log.txt
Your Operating system? (win/mac/linux? version?)
Linux Debian wheezy

could you provide your config.xml for checking?
I have a clue, but I am not sure about it unless I see your settings ;)

Confimed bug for mine.
I will use mac os sierra and tmm 2.9
config.xml.zip

meanwhile I found out how to prevent that behaviour by setting both options

FILENAME_NFO
MOVIE_NFO

If I only check one of these, the nfo ends in the .deleted folder
config.xml.zip

well the source of this behavior is your foldern pattern:
<movieRenamerPathname>$T</movieRenamerPathname>
is not unique enough to be a "one movie per folder" thus we detect that as a multi movie dir (you should put at least the year/IMDB along with the title in the folder name).
This combined with a bug in v2.9 the NFO only gets written if more than one NFO file name is chosen.


Update custom-integration.md

Added deeplink FAQ

@v-samarth : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Docs Build status updates of commit eb1e309:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-community-training/frequently-asked-questions/custom-integration.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@v-samarth : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Sorting of number is not correct

Using the table like shown in the following example the numbers get sorted as a string, not as a number.
<mdt-table>
  <mdt-header-row>
    <mdt-column column-sort="true">String values</mdt-column>
    <mdt-column column-sort="true">Numeric values</mdt-column>
  </mdt-header-row>

  <mdt-row ng-repeat="valin vm.values">
    <mdt-cell>{{ val.stringVal }}</mdt-cell>
    <mdt-cell>{{ val.numericVal}}</mdt-cell>
  </mdt-row>
</mdt-table>

Where vm.values holds the following:
[
  {
    "stringVal": "aaaaa"
    "numericVal": 1
  },
  {
    "stringVal": "bbbbb"
    "numericVal": 3
  },
  {
    "stringVal": "ccccc"
    "numericVal": 12
  }
]

In this example the string values get sorted correctly, but the numeric values get sorted like strings (1, 12, 3).
Using the other syntax (mdt-row: { 'data': vm.values, 'column-keys' }) does seem to sort the numeric correctly.
EDIT: After some digging around, it seems the value gets transformed to a string in this line: https://github.com/iamisti/mdDataTable/blob/master/app/modules/main/directives/body/mdtCellDirective.js#L60

Dear @Tommatheussen ,
I think it's not a bug, since you are passing a value with transclusion. The problem with transclusion is that you loose the type of the value. (or at least it's not checked during transclusion). It would be an additional effort to determine the type which is not really needed in my opinion. <mdt-row> element will be anyway deprecated with the next release, so please try to avoid using it.
There is still a possibility to make the sorting work even in this case, using the comparator attribute on <mdt-column> directive, having your number logic built in.

Thanks for the explanation
I did use custom comparators on the mdt-columns now, but if you say mdt-row will be deprecated, I guess it's best to move away from it.
The problem I had with using inline mdt-row was the custom html content combining 2 values.
I tried to use a function like described with the row_id variable, but it seems the number always got an undefined value. Perhaps I was doing it wrong :p using the row_id interpolated in the html did show the correct number though, so it seems like the function got executed before the number was actually set or something?

Yeah, so if you tried it with using <mdt-row> element attribute, there is a high chance why it doesn't work. That directive is already missing few features.
can you please try mdt-row attribute on mdt-table element directive and get back to me if it's still doesn't work?

I have tried using the mdt-row attribute in the table itself, but there I experienced the issue with the ID, it seems I got the same issue as describe in https://github.com/iamisti/mdDataTable/issues/218
If you modify your codepen to call a function inside of the custom cell (just a simple one, that prints the id), you will notice the id is undefined

Working for me: http://codepen.io/anon/pen/aBORBZ

Aah, I see, you're using arguments[0], whereas I was using the rowId variable in the function, will try it like this later today, thank already! :)

no, you can even use the normal function parameters and it should work.

Ok, I got it to work now, it seems like it just doesn't play nicely when using controller-as, ty again for the help


Auth error handling

One pull request per feature - If you want to do more than one thing, send multiple pull requests.
See CONTRIBUTING


[5.5] Added custom attribute types

For the ability to create custom cast mutators.
In 5.5, a lot of model functionality was transferred to concerns (traits) removing the ability to override various methods in other traits.
This feature provides the ability to override existing casts built-in to Laravel, or define your own using similar naming convention used elsewhere in Laravel.
For example, we have a UUID attribute that is stored as binary in the database. When we use this value though, we need it cast as a string. Currently we would have do this with a defined mutator on each model.
This update would allow us to define a mutator in a trait that we apply to models that have this field. We would create a castUuidValue method which takes a value, mutates, and returns the value. In the UUID case we would convert the binary value into a string.
In my personal cases, I use packages for both UUID and JSON cast types which no longer work in 5.5 due to the method collision from the new traits.

How is the reverse casting handled, when the values (the string) needs to be written back to the database (the binary array)?

Thanks @sisve - good point. I'll add that in to.

See @sisve's comment. Not fleshed out and is actually very complicated to do in a proper way IMO.

@therocis @taylorotwell maybe it should be done in a very similar style like we have custom validation rules in Laravel 5.5 already? In this case we would need to introduce Cast interface with fromDatabase and toDatabase methods.
This is on how the model could look like:
use App\Casts\MoneyCast;

class Order extends Model
{
    protected $casts = [
         'money' => new MoneyCast
    ];
}

This is on how the custom cast definition could look like:
use Illuminate\Database\Eloquent\Cast;

class MoneyCast implements Cast
{
    public function fromDatabase($value)
    {
         // should return casted value (string, object, etc..)
    }

    public function toDatabase($object)
    {
         // should reverse-transform value / object back to the string that needs to be stored in the database
    }
}

This would defintely introduce a lot of flexibility and re-use across different models too.

There has been some development/research into this area earlier; look into https://github.com/laravel/framework/pull/18229 and if you want to continue on that approach.

For those that may be interested, I've developed https://github.com/hnhdigital-os/laravel-model-schema which provides the mechanism for custom attribute types.
The package does a bit more, such as grouping everything into a protected schema property and adding the ability to set per attribute, an auth checking method (per attribute, or a callable method to check). The way it's implemented, it continued to provide the properties that are expected.
I have 73% tested at time of writing and hope to get to 100% shortly (only L5.5, but will play with 5.6 shortly).
@rasmuscnielsen Your example was actually my first test of the custom type. I've implemented a Money\Money casting. I'll be implementing a JSON upgrade to do a similar thing.


Patch Panel Position in Rack Space

Environment

Python version:
NetBox version:  06eed1e03dfc (v2.3.3)

Proposed Functionality
Changing the way that the patch panels in a rack are positionally aligned.
In the current version, a panel is positioned in the rack according to bottom left screw of the device: it's position enumeration is  "The lowest-numbered unit occupied by the device ." I propose that the positioning of devices in the rack should be in alignment with the ANSI TIA-606-b-<IP_ADDRESS>.3.1 standard (please review figure 9) which proposes that it is the TOP left screw of the patch panel that is positionally aligned, rather than the bottom.
For instance a 3u patch panel that is located in the top of a 42u rack, would be in position 42, and not in position 40.

This would be a completely arbitrary change requiring substantial modification to the rack elevation logic while yielding no practical benefit.
Also, NetBox does not currently support modeling patch panels (a feature to be introduced in v2.5).


splitAtLine missing

We are using this in haskell-ide-engine at https://github.com/haskell/haskell-ide-engine/blob/master/hie-plugin-api/Haskell/Ide/Engine/PluginUtils.hs#L288-L293

cc @ndmitchell

And it looks like it can be done using some combination of  span,  takeWhile, dropWhile.

or feeding the output of rowColumnCodeUnits to splitAt.

Added in version <IP_ADDRESS>.


What is the difference between redis-cli.c in redis source code and hiredis code?

What is the difference between redis-cli.c in redis source code and hiredis code?

redis-cli.c implementes the redis-cli command-line client to Redis.  It uses hiredis internally to do the actual communication with redis-server.
Hiredis is a client literary that can be used to build programs that interact with redis.  Programs that include, for example redis-cli.

redis-cli.c implementes the redis-cli command-line client to Redis. It uses hiredis internally to do the actual communication with redis-server.
Hiredis is a client literary that can be used to build programs that interact with Redis. Programs that include, for example redis-cli.
For example, here's a line in redis-cli.c that is using the hiredis function redisConnect.

Thanks a lot！


Adding CascadingTypeParameter to a component breaks indentation after running Format Document

This issue has been moved from a ticket on Developer Community.

TestGeneric.razor
@typeparam TItem
@attribute [CascadingTypeParameter(nameof(TItem))]

TestGeneric

@code
{
	[Parameter] public IEnumerable<TItem> Items { get; set; }
	[Parameter] public RenderFragment ChildContent { get; set; }
}

Parent.razor
@page "/counter"

<TestGeneric Items="_items">
	@foreach (var v in System.Linq.Enumerable.Range(1, 10))
		{

		}
	</TestGeneric>

@code
	{
	private IEnumerable<int> _items = new[] { 1, 2, 3, 4, 5 };
}

If I run the Format Document command on Parent.razor the indentation gets broken.
Everything after the foreach line gets an extra tab, see (hopefully) attached screenshot.
If I remove the CascadingTypeParameter attribute it works fine.
If I specify TItem="int" on TestGeneric in Parent.razor, it also works fine.
It's only broken with the attribute and when the type parameter is inferred and not specified explicitly.
This is the latest VS 2022 RC, fresh blazor server template.

Original Comments
Feedback Bot on 10/19/2021, 10:46 PM:
We have directed your feedback to the appropriate engineering team for further evaluation. The team will review the feedback and notify you about the next steps.

Original Solutions
(no solutions)

Duplicate of : https://github.com/dotnet/razor-tooling/issues/5648


Insensitive Like Operator

Description:
Just an issue for the action in https://github.com/ral-facilities/datagateway/issues/731.
Once https://github.com/icatproject/python-icat/issues/86 has been solved, closed and merged, I need to update the like operator on DataGateway API to pass UPPER() into query. This will make our like operator case insensitive on production ICATs which use Oracle databases.
I already have these changes in a stash so I just need to write some tests to prove the where filter stores the upper function.
Acceptance criteria:

[ ] Update like operator to use SQL upper function
[ ] Add some tests to explicitly test this within the where filter

Blocked until https://github.com/icatproject/python-icat/issues/86 is closed.


6.x: Enable osx/arm64

@conda-forge-admin please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin please rerender

Wasn't this working before?


feat: Add compatibility for publicKeys

Ran into an issue where I was passing web3.publicKeys to createMintToInstruction with 3 multiSigners but received an anonymous.toString() is undefined error while trying to use serializeMessage() for offline signing.
The error was that the docs allowed a (signer | publicKey) [ ] but the function only works with a signer[ ], my fix was to move my web3.publicKeys into an object. {publicKey: myKey} which allowed me to serialize the instruction.
What I assume happened was that the logic
pubkey: signer instanceof PublicKey ? signer : signer.publicKey
did not work as intended and saw my publicKeys as signers and thus tried publicKey.publicKey.toString()
I believe the changes to the logic in this file will resolve the issue for anyone encountering it in the future.
I'm not entirely familiar with the SPL library yet so I'd be glad for suggestions for how to improve my PR or just have a discussion if anything else might have caused it

Will add comment this here as well outside of the oudated conversation:
This is a better/simpler solution, will commit it! Thank you for paying attention to my PR :) Still new to cooperating over Github so it's definetly easing my social anxiety lol.
After reflecting on your comments the two versions of web3.js argument sounds the most likely to me, i think it applies to wallet adapters as well since I'm using the phantom adapter as part of my project which isnt named PublicKey but is named after a 2 byte hash e.g. ve{}|ey{} etc. Although I did try to convert these before submitting my pr but the problem remained.

This is a better/simpler solution, will commit it! Thank you for paying attention to my PR :) Still new to cooperating over Github so it's definetly easing my social anxiety lol.

You are welcome to contribute here, mate.

After reflecting on your comments the two versions of web3.js argument sounds the most likely to me, i think it applies to wallet adapters as well since I'm using the phantom adapter as part of my project which isnt named PublicKey but is named after a 2 byte hash e.g. ve{}|ey{} etc. Although I did try to convert these before submitting my pr but the problem remained.

Is this issue related to the fix you've PR'ed here?


allow web UI to be configured when using mTLS in API

What changed?
Two changes:

Allow temporal web/ui to be configured from a yaml file so that the web UI does not break when the API is configured for mTLS.
Since the UI cannot be run via HTTPS, allow the UI to be bound to a different IP than the API. This can facilitate the API with mTLS being exposed to non-local clients, while keeping the UI available to localhost.

Why?
Temporalite is great, and I want to use it safely in situations where I'm experimenting with mTLS in temporal, especially while implementing mTLS in workers, without the UI being broken.

How did you test it?
Ran temporalite locally without any TLS, and with TLS certificates created by a self-signed root CA. The latter required the creation of temporalite.yaml and temporalite-ui.yaml files in a configuration directory, to allow mTLS to be set up for temporal API components, and allow the UI to make requests to the API via mTLS.
Updated the ui unit test to verify that it can still create a valid configuration when the temporalite-ui.yaml file is absent even though a config directory has been provided, and that it loads the file when it is present.
Updated the mtls test to verify proper integration between the UI and the API when mtls is enabled.
temporalite.yaml
global:
  tls:
    internode:
      server:
        certFile: dist/local.dev+2-client.pem
        keyFile: dist/local.dev+2-client-key.pem
        requireClientAuth: true
        clientCaFiles:
          - dist/rootCA.pem
      client:
        serverName: local.dev
        rootCaFiles:
          - dist/rootCA.pem
    frontend:
      server:
        certFile: dist/local.dev+2-client.pem
        keyFile: dist/local.dev+2-client-key.pem
        requireClientAuth: true
        clientCaFiles:
          - dist/rootCA.pem
      client:
        serverName: local.dev
        rootCaFiles:
          - dist/rootCA.pem

# dummy values, required by yaml parser
# replaced at runtime by temporalite
persistence:
  defaultStore: default
  numHistoryShards: 1

temporalite-ui.yaml
tls:
  caFile: dist/rootCA.pem
  certFile: dist/client.pem
  keyFile: dist/client-key.pem
  serverName: local.dev

Potential risks
Applications with existing command line configuration will still work as advertised.

Is hotfix candidate?
No.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

This could be done in a followup PR, but I'd love to add some documentation around enabling TLS and enabling the web UI in the configuration. Perhaps in the internal/examples/mtls directory.

@jlegrone I've not created any extra documentation, but this directory is used by mtls_test.go so I added a template for temporalite-ui.yaml and updated the test to make an api call to temporal-ui just like a browser page would. This at least verifies that temporal-ui can now properly talk to temporal-api.

@cretz the failed macos headless test passes locally on my mac. Not sure how to fix it for the PR.
go test -tags headless ./...
?   	github.com/temporalio/temporalite	[no test files]
ok  	github.com/temporalio/temporalite/cmd/temporalite	1.478s
?   	github.com/temporalio/temporalite/internal/copyright	[no test files]
?   	github.com/temporalio/temporalite/internal/examples/helloworld	[no test files]
?   	github.com/temporalio/temporalite/internal/examples/mtls	[no test files]
?   	github.com/temporalio/temporalite/internal/liteconfig	[no test files]
ok  	github.com/temporalio/temporalite/temporaltest	3.330s


Create dynamic framework fails

Creating openssl.framework
ld: warning: -macosx_version_min not specified, assuming 10.9
ld: in lib/libcrypto.a(cryptlib.o), building for OSX, but linking in object file built for iOS, for architecture i386
fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: internal link edit command failed
Created openssl.framework```

Works fine here:
$ ./create-openssl-framework.sh
Creating openssl.framework
Created openssl.framework

What Xcode version have you installed?

Ah now i see the problem - if you use  ./create-openssl-framework.sh dynamic the error happens.
I will have a look!

So it seems to be a Xcode Bug: http://www.openradar.me/22104678

If you remove the rejected -ios_version_min 8.0 flag and add the -v verbose flag to libtool, you can see the ld command it's trying to run:
Removing previous openssl.framework copy
Creating openssl.framework
+ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld -arch_multiple -arch i386 -dylib -dynamic -all_load -force_cpusubtype_ALL -no_arch_warnings -dylib_install_name openssl.framework/openssl -undefined dynamic_lookup lib/libcrypto.a lib/libssl.a -o openssl.framework/openssl.libtool.i386 -final_output openssl.framework/openssl
ld: warning: -macosx_version_min not specified, assuming 10.10
ld: in lib/libcrypto.a(libcrypto_la-aes_cbc.o), building for OSX, but linking in object file built for iOS, for architecture i386
fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: internal link edit command failed

Copying that and calling it for each arch, then combining the outputs with lipo seems to produce a working dynamic framework: https://github.com/nanotech/OpenSSL-for-iPhone/commit/9409f98abfd5ce00becc3b8fc02acc61f397397d

Ok could be a workaround - but it could break things for newer Xcode version i think, or?

Seems to be fixed by Apple - Xcode 8 the dynamic framework is created.


MatAutoComplete- valueChanges.startWith is not a function

Bug, feature request, or proposal:
Bug
What is the expected behavior?
This is my code which worked fine before updating material and angular
`filterUsers() {
this.filteredData = this.searchForm.get('name').valueChanges
  .startWith(null)
  .map(val => this.filterResult(val));

}`
What is the current behavior?
I get the following error
core.js:1350 ERROR TypeError: this.searchForm.get(...).valueChanges.startWith is not a function
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
I am using the following versions
"@angular/animations": "^5.0.0-rc.0",
"@angular/cdk": "^5.0.0-rc.1",
"@angular/common": "^5.0.0-rc.0",
"@angular/compiler": "^5.0.0-rc.0",
"@angular/core": "^5.0.0-rc.0",
"@angular/forms": "^5.0.0-rc.0",
"@angular/http": "^5.0.0-rc.0",
"@angular/material": "^5.0.0-rc.1",
"typescript": "^2.5.3"
Is there anything else we should know?
It was working fine on angular 4.2.0 and material 2.0.0-beta-6. I recently updated them.

As of beta.8 you need to import RxJS operators explicitly:

Angular Material no longer adds RxJS operators to the prototype of Observable. If your app depended on these operators being added by Angular Material, you will need to import them explicitly.

Thanks. this solved my issue.


Search does not have memory.

Search functionality does not have memory and cant suggest already searched patterns for search. It is very useful functionality that saves time.

Just came across this, this would be a nice feature

duplicates #5508


Update changelog for 0.12.0

Codecov Report

Merging #311 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #311   +/-   ##
=======================================
  Coverage   63.08%   63.08%
=======================================
  Files          20       20
  Lines        1211     1211
  Branches      230      230
=======================================
  Hits          764      764
  Misses        385      385
  Partials       62       62

Flag
Coverage Δ

#integration
33.77% <ø> (ø)
:arrow_up:

#unit
63.08% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3b22a28...875a778. Read the comment docs.