Git Product home page Git Product logo

python-var-dump's Introduction

var_dump

for python


var_dump is a PHP's var_dump() equivalent function for python. It displays structured information such as type, value etc of a python object, list, tuple, dict & other types.

Installation


using pip

pip install var_dump

Or

clone the project & cd into the python-var-dump directory then run:

python setup.py install

Examples


Example #1:

from var_dump import var_dump

var_dump(123) 					# output: #0 int(123)
var_dump(123.44) 				# output: #0 float(123.44)
var_dump("this is a string") 	# output: #0 str(16) "this is a string"
var_dump(None) # output: 		# output: #0 NoneType(None)
var_dump(True) # output 		# output: #0 bool(True)

Example #2:

you can pass more than one argument:

from var_dump import var_dump

var_dump(123, 123.44, None, False)

Output:

#0 int(123) 
#1 float(123.44) 
#2 NoneType(None) 
#3 bool(False) 

Example #3:

from var_dump import var_dump

class Base(object):

    def __init__(self):
        self.baseProp = (33, 44)
		self.fl = 44.33

class Bar(object):

    def __init__(self):
        self.barProp = "I'm from Bar class"
		self.boo = True


class Foo(Base):

    def __init__(self):
        super(Foo, self).__init__()
        self.someList = ['foo', 'goo']
        self.someTuple = (33, (23, 44), 55)
        self.anOb = Bar()
		self.no = None

foo = Foo()
var_dump(foo)

Output

#0 object(Foo) (6)
    baseProp => tuple(2) 
        [0] => int(33) 
        [1] => int(44) 
    someTuple => tuple(3) 
        [0] => int(33) 
        [1] => tuple(2) 
            [0] => int(23) 
            [1] => int(44) 
        [2] => int(55) 
    no => NoneType(None) 
    someList => list(2) 
        [0] => str(3) "foo"
        [1] => str(3) "goo"
    fl => float(44.33) 
    anOb => object(Bar) (2)
        boo => bool(True) 
        barProp => str(18) "I'm from Bar class"

Unit tests


Tests are written using unittest.

Run them with python -m unittest tests.


License: BSD License

python-var-dump's People

Contributors

a904guy avatar lexaf avatar litefeel avatar macdada avatar sha256 avatar todorvelichkov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

python-var-dump's Issues

AttributeError: 'thread.lock' object has no attribute '__dict__'

Facing this issue on dumping an object. Please check.

Traceback (most recent call last):
  File "C:/Python27/test_dump.py", line 7, in <module>
    var_dump(r)
  File "C:\Python27\lib\site-packages\var_dump\_var_dump.py", line 79, in var_dump
    dump(x, 0, i, '', object)
  File "C:\Python27\lib\site-packages\var_dump\_var_dump.py", line 66, in dump
    dump(o[i], space, num, i, typ)
  File "C:\Python27\lib\site-packages\var_dump\_var_dump.py", line 66, in dump
    dump(o[i], space, num, i, typ)
  File "C:\Python27\lib\site-packages\var_dump\_var_dump.py", line 66, in dump
    dump(o[i], space, num, i, typ)
  File "C:\Python27\lib\site-packages\var_dump\_var_dump.py", line 56, in dump
    display(o, space, num, key, typ)
  File "C:\Python27\lib\site-packages\var_dump\_var_dump.py", line 45, in display
    l.append(len(o.__dict__))
AttributeError: 'thread.lock' object has no attribute '__dict__' 

How to reproduce? Please try this code.

import requests
from var_dump import var_dump
r = requests.get('https://api.github.com/events')
var_dump(r)

Is this abandonware?

Hey,

I wanna use + improve this lib.

But It looks like it is abandoned / not maintained anymore… Is it? Does it make sense to make a PR?

Fails on sets - 'set' object has no attribute '__dict__'

x = set([1,2,3])
from var_dump import var_dump
var_dump(x)
Traceback (most recent call last):
  File "dumpset.py", line 3, in <module>
    var_dump(x)
  File "C:\Python27\lib\site-packages\var_dump\_var_dump.py", line 79, in var_dump
    dump(x, 0, i, '', object)
  File "C:\Python27\lib\site-packages\var_dump\_var_dump.py", line 56, in dump
    display(o, space, num, key, typ)
  File "C:\Python27\lib\site-packages\var_dump\_var_dump.py", line 45, in display
    l.append(len(o.__dict__))
AttributeError: 'set' object has no attribute '__dict__'

Publish a new version?

$PYTHONEXE -m pip install var_dump --upgrade
$PYTHONEXE -m pip install var_dump --force-reinstall

I'm trying to upgrade, but I'm still getting the implementation from before the recursion fix.

I guess a new version needs to be published.

Output to string?

This is great. An enhancement would be to also be able to output to a string. There are times where printing isn't available but logger.debug() is available.

Problems trying to run in Python 3.32

I get this error when i try to run it

Traceback (most recent call last):
    File "D:\Project\Tyme Agent Py\src\main.py", line 4, in <module>
        from var_dump import var_dump
    File "D:\Python\lib\site-packages\var_dump\__init__.py", line 2, in <module>
        from _var_dump import var_dump
ImportError: No module named '_var_dump'

var_dump('\x9F'); crash on Windows on stdout-to-file redirection

when stdout is redirected to a file,

from var_dump import var_dump
var_dump('\x9F');

will crash on Windows. Not sure why, and does not happen on Linux. reproducing the issue in cmd:

C:\>Python --version
Python 3.10.4

C:\>type crash.py
from var_dump import var_dump
var_dump('\x9F')
C:\>Python crash.py
#0 str(1) "�"

C:\>Python crash.py > stdoud_to_file.txt
Traceback (most recent call last):
  File "C:\crash.py", line 2, in <module>
    var_dump('\x9F')
  File "C:\Python\Python310\lib\site-packages\var_dump\_var_dump.py", line 109, in var_dump
    dump(x, 0, i, '', object, True)
  File "C:\Python\Python310\lib\site-packages\var_dump\_var_dump.py", line 76, in dump
    r += display(o, space, num, key, typ, proret)
  File "C:\Python\Python310\lib\site-packages\var_dump\_var_dump.py", line 68, in display
    print(st % tuple(l))
  File "C:\Python\Python310\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\x9f' in position 11: character maps to <undefined>

ttributeError: 'weakref' object has no attribute '__dict__'

(FlaskEnv)[bud@dev tests]$ nosetests -s test_models.py
#0 list(2)

[0] => object(User) (14)
    openid => NoneType(None) 
    activation_key => NoneType(None) 
    _sa_instance_state => object(InstanceState) (12)

E

ERROR: test_get_current_time (tests.test_models.TestUser)

Traceback (most recent call last):
File "/home/bud/py/fbone/tests/test_models.py", line 12, in test_get_current_time
var_dump(User.query.all())
File "/home/bud/.pyenv/versions/FlaskEnv/lib/python2.7/site-packages/var_dump/_var_dump.py", line 79, in var_dump
dump(x, 0, i, '', object)
File "/home/bud/.pyenv/versions/FlaskEnv/lib/python2.7/site-packages/var_dump/_var_dump.py", line 68, in dump
dump(i, space, num, '', typ)
File "/home/bud/.pyenv/versions/FlaskEnv/lib/python2.7/site-packages/var_dump/_var_dump.py", line 66, in dump
dump(o[i], space, num, i, typ)
File "/home/bud/.pyenv/versions/FlaskEnv/lib/python2.7/site-packages/var_dump/_var_dump.py", line 66, in dump
dump(o[i], space, num, i, typ)
File "/home/bud/.pyenv/versions/FlaskEnv/lib/python2.7/site-packages/var_dump/_var_dump.py", line 56, in dump
display(o, space, num, key, typ)
File "/home/bud/.pyenv/versions/FlaskEnv/lib/python2.7/site-packages/var_dump/_var_dump.py", line 45, in display
l.append(len(o.dict))
AttributeError: 'weakref' object has no attribute 'dict'


Ran 1 test in 0.063s

FAILED (errors=1)

does a bad job with ctypes.wintypes.ULARGE_INTEGER

no matter what the ULARGE_INTEGER actually contains, it will just var_dump as

object(c_ulonglong) (0)

for example

import ctypes
import ctypes.wintypes
from var_dump import var_dump

foo = ctypes.wintypes.ULARGE_INTEGER(123)
var_dump(foo, foo.value)

prints

#0 object(c_ulonglong) (0)
#1 int(123)

interestingly print() gets it right,

print(ctypes.wintypes.ULARGE_INTEGER(123))

gives

c_ulonglong(123)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.