Skip to content

Commit

Permalink
Merge pull request #1 from adierebel/master
Browse files Browse the repository at this point in the history
tidying up the coding style, upgrade pymongo version

thanks 👍
  • Loading branch information
emsuryadi committed Oct 1, 2020
2 parents 99b2c16 + 9181521 commit e5e0dd5
Show file tree
Hide file tree
Showing 7 changed files with 91 additions and 111 deletions.
73 changes: 34 additions & 39 deletions docs/index.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,79 +36,73 @@ Microngo example::
# Insert data
#

contact = db.insert("Contact")
contact.Name = "Suryadi"
contact.Gender = "male"
contact.Created = datetime.utcnow()
contact.Status = 1
contact.Phone = {
"Home": "(233) 233176",
"Cell": "+62122312"
contact = db.insert("contact")
contact.name = "Suryadi"
contact.gender = "male"
contact.created = datetime.utcnow()
contact.status = 1
contact.phone = {
"home": "(233) 233176",
"cell": "+62122312"
}
contact_id = contact.save()

# Print info
print("Contact ID:", contact_id)
print("contact id:", contact_id) # Print info

# Insert many
calls = db.insert("Calls")
calls = db.insert("calls")
for i in range(0, 10):
calls.No = i
calls.Phone = randrange(1000, 9999)

# Add
calls.add()

# Save
calls.save()
calls.no = i
calls.phone = randrange(1000, 9999)
calls.add() # Add
calls.save() # Save

#
# Read data
#

contact_data = db.query("Contact").find().sort('Name', 1).first()
contact_data = db.query("contact").find().sort('name', 1).first()
if contact_data:
print("Name:", contact_data.Name)
print("Gender:", contact_data.Gender)
print("name:", contact_data.name)
print("gender:", contact_data.gender)

calls_data = db.query("Calls").find().all()
calls_data = db.query("calls").find().all()
for item in calls_data:
print("No:", item.No)
print("Phone:", item.Phone)
print("no:", item.no)
print("phone:", item.phone)

#
# Update data
#

suryadi_data = db.query("Contact").find_by(Name="Suryadi").first()
suryadi_data = db.query("contact").find_by(name="Suryadi").first()
if suryadi_data:
suryadi_data.Name = "Em Suryadi"
suryadi_data.name = "Em Suryadi"
suryadi_data.save()
print("Update ID", suryadi_data._id)
print("update id", suryadi_data._id)

#
# Paginate
#

paginated_data = db.query("Calls").find().paginate(1, per_page=2)
paginated_data = db.query("calls").find().paginate(1, per_page=2)
# Info
print("Total Pages:", paginated_data.pages)
print("Current page:", paginated_data.page)
print("Has next page:", paginated_data.has_next())
print("Next page:", paginated_data.next_num)
print("Has prev page:", paginated_data.has_prev())
print("Prev page:", paginated_data.prev_num)
print("total pages:", paginated_data.pages)
print("current page:", paginated_data.page)
print("has next page:", paginated_data.has_next())
print("next page:", paginated_data.next_num)
print("has prev page:", paginated_data.has_prev())
print("prev page:", paginated_data.prev_num)
# Item
for call in paginated_data.items:
print("Call No", call.No)
print("call no.", call.no)

#
# Delete data
#

calls_data = db.query("Calls").find().limit(5).sort('No', 1).all()
calls_data = db.query("calls").find().limit(5).sort('no', 1).all()
for call in calls_data:
print("Call No", call.No)
print("call no.", call.no)
call.remove()

API
Expand All @@ -125,6 +119,7 @@ API
.. autoclass:: microngo.Document
:members:


.. autoclass:: microngo.Pagination
:members:

Expand Down
81 changes: 33 additions & 48 deletions examples/basic.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from microngo import Microngo
from datetime import datetime
from random import randrange
from time import time

#
# Client
Expand All @@ -13,85 +12,71 @@
# Insert data
#

contact = db.insert("Contact")
contact.Name = "Suryadi"
contact.Gender = "male"
contact.Created = datetime.utcnow()
contact.Status = 1
contact.Phone = {
"Home": "(233) 233176",
"Cell": "+62122312"
contact = db.insert("contact")
contact.name = "Suryadi"
contact.gender = "male"
contact.created = datetime.utcnow()
contact.status = 1
contact.phone = {
"home": "(233) 233176",
"cell": "+62122312"
}
contact_id = contact.save()

# Print info
print("Contact ID:", contact_id)
print()
print("contact id:", contact_id) # Print info

# Insert many
calls = db.insert("Calls")
calls = db.insert("calls")
for i in range(0, 10):
calls.No = i
calls.Phone = randrange(1000, 9999)

# Add
calls.add()

# Save
calls.save()
calls.no = i
calls.phone = randrange(1000, 9999)
calls.add() # Add
calls.save() # Save

#
# Read data
#

contact_data = db.query("Contact").find().sort('Name', 1).first()
contact_data = db.query("contact").find().sort('name', 1).first()
if contact_data:
print("Name:", contact_data.Name)
print("Gender:", contact_data.Gender)
print()
print("name:", contact_data.name)
print("gender:", contact_data.gender)

calls_data = db.query("Calls").find().all()
calls_data = db.query("calls").find().all()
for item in calls_data:
print("No:", item.No)
print("Phone:", item.Phone)

print()
print("no:", item.no)
print("phone:", item.phone)

#
# Update data
#

suryadi_data = db.query("Contact").find_by(Name="Suryadi").first()
suryadi_data = db.query("contact").find_by(name="Suryadi").first()
if suryadi_data:
suryadi_data.Name = "Em Suryadi"
suryadi_data.name = "Em Suryadi"
suryadi_data.save()
print("Update ID:", suryadi_data._id)

print()
print("update id", suryadi_data._id)

#
# Paginate
#

paginated_data = db.query("Calls").find().paginate(1, per_page=2)
paginated_data = db.query("calls").find().paginate(1, per_page=2)
# Info
print("Total Pages:", paginated_data.pages)
print("Current page:", paginated_data.page)
print("Has next page:", paginated_data.has_next())
print("Next page:", paginated_data.next_num)
print("Has prev page:", paginated_data.has_prev())
print("Prev page:", paginated_data.prev_num)
print("total pages:", paginated_data.pages)
print("current page:", paginated_data.page)
print("has next page:", paginated_data.has_next())
print("next page:", paginated_data.next_num)
print("has prev page:", paginated_data.has_prev())
print("prev page:", paginated_data.prev_num)
# Item
for call in paginated_data.items:
print("Call No", call.No)

print()
print("call no.", call.no)

#
# Delete data
#

calls_data = db.query("Calls").find().sort('No', 1).all()
calls_data = db.query("calls").find().limit(5).sort('no', 1).all()
for call in calls_data:
print("Call No", call.No)
print("call no.", call.no)
call.remove()
40 changes: 20 additions & 20 deletions microngo/microngo.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ def __init__(self, *args, **kwargs):
:type db: str or None
'''

self.collection = None
self._db_name = None
self.db = None
self.collection = None
self._db_name = None
self.db = None

# Get database name and remove it
database = kwargs.get("db")
Expand Down Expand Up @@ -71,9 +71,9 @@ def __init__(self, collection, data=None):
'''

# Variables
self._microngo_collection = collection
self._microngo_payloads = []
self._microngo_document_id = None
self._microngo_collection = collection
self._microngo_payloads = []
self._microngo_document_id = None

# Dict data
if data:
Expand All @@ -99,18 +99,18 @@ def _get_payloads(self):

def _clear_payloads(self):
# Cache variable
cache_collection = self._microngo_collection
cache_payloads = self._microngo_payloads
cache_document_id = self._microngo_document_id
cache_collection = self._microngo_collection
cache_payloads = self._microngo_payloads
cache_document_id = self._microngo_document_id

# Clear self variables
payloads = self.__dict__
payloads.clear()

# Reasign internal variables from cache
payloads['_microngo_collection'] = cache_collection
payloads['_microngo_payloads'] = cache_payloads
payloads['_microngo_document_id'] = cache_document_id
payloads['_microngo_collection'] = cache_collection
payloads['_microngo_payloads'] = cache_payloads
payloads['_microngo_document_id'] = cache_document_id
return self

def add(self):
Expand Down Expand Up @@ -182,7 +182,7 @@ def __init__(self, collection, cursor=None):
'''

self.collection = collection
self.cursor = cursor
self.cursor = cursor

def __getattr__(self, name):
# Handle pymongo collection's method
Expand All @@ -191,7 +191,7 @@ def method(*args, **kwargs):
func = getattr(self.cursor, name)
else:
func = getattr(self.collection, name)

self.cursor = func(*args, **kwargs)
return self

Expand Down Expand Up @@ -225,7 +225,7 @@ def raw(self):
def one(self):
'''
Get single document.
:return: :class:`~microngo.Document` or None
:raises Exception: if the result type isn't dict
'''
Expand All @@ -242,7 +242,7 @@ def one(self):
def first(self):
'''
Get first document from list or from single document result.
:return: :class:`~microngo.Document` or None
:raises Exception: if the result type isn't dict and not iterable
'''
Expand All @@ -266,7 +266,7 @@ def first(self):
def all(self):
'''
Get all document in list.
:return: list of :class:`~microngo.Document` or []
:raises Exception: if the result is not iterable
'''
Expand All @@ -287,7 +287,7 @@ def all(self):
def paginate(self, page, per_page=20):
'''
Crate pagination query
:return: :class:`~microngo.Pagination` or None
'''
if page < 1:
Expand Down
2 changes: 1 addition & 1 deletion requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ MarkupSafe==1.1.1
nose==1.3.7
pkginfo==1.5.0.1
Pygments==2.3.1
pymongo==3.7.2
pymongo==3.11.0
readme-renderer==24.0
requests==2.21.0
requests-toolbelt==0.9.1
Expand Down
2 changes: 1 addition & 1 deletion requirements-docs.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
pymongo==3.7.2
pymongo==3.11.0
Flask-Sphinx-Themes==1.0.2
2 changes: 1 addition & 1 deletion requirements-test.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
coverage==4.5.3
nose==1.3.7
pymongo==3.7.2
pymongo==3.11.0
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
pymongo==3.7.2
pymongo==3.11.0

0 comments on commit e5e0dd5

Please sign in to comment.