@@ -145,14 +145,6 @@ def method_overwritten(instance, method):
145
145
if method_overwritten (manipulator , "transform_outgoing" ):
146
146
self .__outgoing_manipulators .insert (0 , manipulator )
147
147
148
- @property
149
- def system_js (self ):
150
- """**DEPRECATED**: :class:`SystemJS` helper for this :class:`Database`.
151
-
152
- See the documentation for :class:`SystemJS` for more details.
153
- """
154
- return SystemJS (self )
155
-
156
148
@property
157
149
def client (self ):
158
150
"""The client instance for this :class:`Database`."""
@@ -1547,77 +1539,3 @@ def dereference(self, dbref, session=None, **kwargs):
1547
1539
self .__name ))
1548
1540
return self [dbref .collection ].find_one (
1549
1541
{"_id" : dbref .id }, session = session , ** kwargs )
1550
-
1551
- def eval (self , code , * args ):
1552
- """**DEPRECATED**: Evaluate a JavaScript expression in MongoDB.
1553
-
1554
- :Parameters:
1555
- - `code`: string representation of JavaScript code to be
1556
- evaluated
1557
- - `args` (optional): additional positional arguments are
1558
- passed to the `code` being evaluated
1559
-
1560
- .. warning:: the eval command is deprecated in MongoDB 3.0 and
1561
- will be removed in a future server version.
1562
- """
1563
- warnings .warn ("Database.eval() is deprecated" ,
1564
- DeprecationWarning , stacklevel = 2 )
1565
-
1566
- if not isinstance (code , Code ):
1567
- code = Code (code )
1568
-
1569
- result = self .command ("$eval" , code , args = args )
1570
- return result .get ("retval" , None )
1571
-
1572
- def __call__ (self , * args , ** kwargs ):
1573
- """This is only here so that some API misusages are easier to debug.
1574
- """
1575
- raise TypeError ("'Database' object is not callable. If you meant to "
1576
- "call the '%s' method on a '%s' object it is "
1577
- "failing because no such method exists." % (
1578
- self .__name , self .__client .__class__ .__name__ ))
1579
-
1580
-
1581
- class SystemJS (object ):
1582
- """**DEPRECATED**: Helper class for dealing with stored JavaScript.
1583
- """
1584
-
1585
- def __init__ (self , database ):
1586
- """**DEPRECATED**: Get a system js helper for the database `database`.
1587
-
1588
- SystemJS will be removed in PyMongo 4.0.
1589
- """
1590
- warnings .warn ("SystemJS is deprecated" ,
1591
- DeprecationWarning , stacklevel = 2 )
1592
-
1593
- if not database .write_concern .acknowledged :
1594
- database = database .client .get_database (
1595
- database .name , write_concern = DEFAULT_WRITE_CONCERN )
1596
- # can't just assign it since we've overridden __setattr__
1597
- object .__setattr__ (self , "_db" , database )
1598
-
1599
- def __setattr__ (self , name , code ):
1600
- self ._db .system .js .replace_one (
1601
- {"_id" : name }, {"_id" : name , "value" : Code (code )}, True )
1602
-
1603
- def __setitem__ (self , name , code ):
1604
- self .__setattr__ (name , code )
1605
-
1606
- def __delattr__ (self , name ):
1607
- self ._db .system .js .delete_one ({"_id" : name })
1608
-
1609
- def __delitem__ (self , name ):
1610
- self .__delattr__ (name )
1611
-
1612
- def __getattr__ (self , name ):
1613
- return lambda * args : self ._db .eval (Code ("function() { "
1614
- "return this[name].apply("
1615
- "this, arguments); }" ,
1616
- scope = {'name' : name }), * args )
1617
-
1618
- def __getitem__ (self , name ):
1619
- return self .__getattr__ (name )
1620
-
1621
- def list (self ):
1622
- """Get a list of the names of the functions stored in this database."""
1623
- return [x ["_id" ] for x in self ._db .system .js .find (projection = ["_id" ])]
0 commit comments