MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / __str__

Method __str__

lib/sqlalchemy/util/langhelpers.py:829–903  ·  view source on GitHub ↗

Produce the __repr__() string based on the configured parameters.

(self)

Source from the content-addressed store, hash-verified

827 return self
828
829 def __str__(self) -> str:
830 """Produce the __repr__() string based on the configured parameters."""
831 obj = self._obj
832 to_inspect = self._to_inspect
833 additional_kw = self._additional_kw
834 omit_kwarg = self._omit_kwarg
835
836 missing = object()
837
838 pos_args = []
839 kw_args: _collections.OrderedDict[str, Any] = (
840 _collections.OrderedDict()
841 )
842 vargs = None
843 for i, insp in enumerate(to_inspect):
844 try:
845 spec = compat.inspect_getfullargspec(insp.__init__) # type: ignore[misc] # noqa: E501
846 except TypeError:
847 continue
848 else:
849 default_len = len(spec.defaults) if spec.defaults else 0
850 if i == 0:
851 if spec.varargs:
852 vargs = spec.varargs
853 if default_len:
854 pos_args.extend(spec.args[1:-default_len])
855 else:
856 pos_args.extend(spec.args[1:])
857 else:
858 kw_args.update(
859 [(arg, missing) for arg in spec.args[1:-default_len]]
860 )
861
862 if default_len:
863 assert spec.defaults
864 kw_args.update(
865 [
866 (arg, default)
867 for arg, default in zip(
868 spec.args[-default_len:], spec.defaults
869 )
870 ]
871 )
872 output: List[str] = []
873
874 output.extend(repr(getattr(obj, arg, None)) for arg in pos_args)
875
876 if vargs is not None and hasattr(obj, vargs):
877 output.extend([repr(val) for val in getattr(obj, vargs)])
878
879 for arg, defval in kw_args.items():
880 if arg in omit_kwarg:
881 continue
882 try:
883 val = getattr(obj, arg, missing)
884 if val is not missing and val != defval:
885 output.append("%s=%r" % (arg, val))
886 except Exception:

Callers

nothing calls this directly

Calls 5

extendMethod · 0.45
updateMethod · 0.45
itemsMethod · 0.45
appendMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected