Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
since = DateTimeProperty(default=lambda: datetime.now(pytz.utc))
class HatesRel(FriendRel):
reason = StringProperty()
def pre_save(self):
HOOKS_CALLED['pre_save'] += 1
def post_save(self):
HOOKS_CALLED['post_save'] += 1
class Badger(StructuredNode):
name = StringProperty(unique_index=True)
friend = Relationship('Badger', 'FRIEND', model=FriendRel)
hates = RelationshipTo('Stoat', 'HATES', model=HatesRel)
class Stoat(StructuredNode):
name = StringProperty(unique_index=True)
hates = RelationshipTo('Badger', 'HATES', model=HatesRel)
def test_either_connect_with_rel_model():
paul = Badger(name="Paul").save()
tom = Badger(name="Tom").save()
# creating rels
new_rel = tom.friend.disconnect(paul)
new_rel = tom.friend.connect(paul)
assert isinstance(new_rel, FriendRel)
twelve_days = timedelta(days=12)
eleven_days = timedelta(days=11)
ten_days = timedelta(days=10)
nine_days = timedelta(days=9)
now = datetime.now()
class FriendRelationship(StructuredRel):
since = DateTimeProperty(default=datetime.now)
class Person(StructuredNode):
name = StringProperty()
age = IntegerProperty()
friends = Relationship('Person', 'friend_of', model=FriendRelationship)
def setup_friends(person0, person1, since=None):
rel = person0.friends.connect(person1)
if (since):
rel.since = since
rel.save()
return rel.since
def test_traversal_single_param():
connection().clear()
jean = Person(name="Jean", age=25).save()
johan = Person(name="Johan", age=19).save()
chris = Person(name="Chris", age=21).save()
frank = Person(name="Frank", age=29).save()
from pytest import raises
from neomodel import (StructuredNode, RelationshipTo, RelationshipFrom, Relationship,
StringProperty, IntegerProperty, StructuredRel, One)
class PersonWithRels(StructuredNode):
name = StringProperty(unique_index=True)
age = IntegerProperty(index=True)
is_from = RelationshipTo('Country', 'IS_FROM')
knows = Relationship(u'PersonWithRels', 'KNOWS') # use unicode to check issue
@property
def special_name(self):
return self.name
def special_power(self):
return "I have no powers"
class Country(StructuredNode):
code = StringProperty(unique_index=True)
inhabitant = RelationshipFrom(PersonWithRels, 'IS_FROM')
president = RelationshipTo(PersonWithRels, 'PRESIDENT', cardinality=One)
class SuperHero(PersonWithRels):
Relationship
)
from .nodeutils import NodeUtils
class Officer(StructuredNode, NodeUtils):
sourceID = StringProperty()
name = StringProperty()
country_codes = StringProperty()
valid_until = StringProperty()
countries = StringProperty()
node_id = StringProperty(index = True)
addresses = RelationshipTo('.address.Address', 'REGISTERED_ADDRESS')
entities = RelationshipTo('.entity.Entity', 'OFFICER_OF')
officers = Relationship('.officer.Officer', None)
@property
def serialize(self):
return {
'node_properties': {
'sourceID': self.sourceID,
'name': self.name,
'country_codes': self.country_codes,
'valid_until': self.valid_until,
'countries': self.countries,
'node_id': self.node_id,
},
}
StructuredNode,
RelationshipTo,
Relationship
)
from .nodeutils import NodeUtils
class Other(StructuredNode, NodeUtils):
sourceID = StringProperty()
name = StringProperty()
valid_until = StringProperty()
node_id = StringProperty(index = True)
countries = StringProperty()
addresses = RelationshipTo('.address.Address', 'REGISTERED_ADDRESS')
officers = Relationship('.officer.Officer', None)
entities = Relationship('.entity.Entity', None)
@property
def serialize(self):
return{
'node_properties': {
'sourceID': self.sourceID,
'name': self.name,
'countries': self.countries,
'valid_until': self.valid_until,
'node_id': self.node_id,
},
}
logger.info("finished updating search word")
class ArticleRel(StructuredRel):
created_at = DateTimeProperty(
default=lambda: datetime.now()
)
tf_idf = FloatProperty()
hidden = BooleanProperty(default=False)
label = StringProperty()
class GraphArticle(StructuredNode):
uid = UniqueIdProperty()
name = StringProperty()
related = Relationship('GraphArticle', 'RELATED', model=ArticleRel)
class SearchResult(models.Model):
id = models.BigIntegerField(primary_key=True)
title = models.TextField()
headline = models.TextField()
rank = models.DecimalField(max_digits=19, decimal_places=2)
class Meta:
managed = False
db_table = 'search_index'
class SearchWord(models.Model):
word = models.TextField(primary_key=True)
similarity = models.DecimalField(max_digits=19, decimal_places=2)
RelationshipTo,
Relationship
)
from .nodeutils import NodeUtils
class Other(StructuredNode, NodeUtils):
sourceID = StringProperty()
name = StringProperty()
valid_until = StringProperty()
node_id = StringProperty(index = True)
countries = StringProperty()
addresses = RelationshipTo('.address.Address', 'REGISTERED_ADDRESS')
officers = Relationship('.officer.Officer', None)
entities = Relationship('.entity.Entity', None)
@property
def serialize(self):
return{
'node_properties': {
'sourceID': self.sourceID,
'name': self.name,
'countries': self.countries,
'valid_until': self.valid_until,
'node_id': self.node_id,
},
}
@property
retweeted = neomodel.BooleanProperty(required=False)
retweet_id_str = neomodel.StringProperty(required=False, default='')
reply_id_str = neomodel.StringProperty(required=False, default='')
quote_id_str = neomodel.StringProperty(required=False, default='')
mention_ids_str = neomodel.ArrayProperty(required=False, default=[])
text = neomodel.StringProperty(required=False)
coordinates = neomodel.ArrayProperty(required=False, default=[])
lang = neomodel.StringProperty(required=False)
features = neomodel.JSONProperty(required=False, default={})
retweets = neomodel.RelationshipTo('Tweet', 'RETWEETS')
mentions = neomodel.RelationshipTo('User', 'MENTIONS')
replies = neomodel.RelationshipTo('Tweet', 'REPLIES')
tags = neomodel.RelationshipTo('Hashtag', 'TAGS')
contains = neomodel.RelationshipTo('Link', 'CONTAINS')
quotes = neomodel.Relationship('Tweet', 'QUOTES')
def save(self):
self.modified = datetime.datetime.now()
super(Tweet, self).save()
class User(neomodel.StructuredNode):
id_str = neomodel.StringProperty(unique_index=True, required=True)
name = neomodel.StringProperty(required=False)
screen_name = neomodel.StringProperty(required=False)
followers_count = neomodel.IntegerProperty(required=False)
friends_count = neomodel.IntegerProperty(required=False)
modified = neomodel.DateTimeProperty(required=False)
created_at = neomodel.DateTimeProperty(required=False)
description = neomodel.StringProperty(required=False)
location = neomodel.StringProperty(required=False)
jurisdiction = StringProperty()
service_provider = StringProperty()
countries = StringProperty()
jurisdiction_description = StringProperty()
valid_until = StringProperty()
ibcRUC = StringProperty()
name = StringProperty()
country_codes = StringProperty()
incorporation_date = StringProperty()
node_id = StringProperty(index = True)
status = StringProperty()
officers = RelationshipFrom('.officer.Officer', 'OFFICER_OF')
intermediaries = RelationshipFrom('.intermediary.Intermediary', 'INTERMEDIARY_OF')
addresses = RelationshipTo('.address.Address', 'REGISTERED_ADDRESS')
others = RelationshipFrom('.other.Other', 'CONNECTED_TO')
entities = Relationship('.entity.Entity', None)
@property
def serialize(self):
return {
'node_properties': {
'sourceID': self.sourceID,
'address': self.address,
'jurisdiction': self.jurisdiction,
'service_provider': self.service_provider,
'countries': self.countries,
'jurisdiction_description': self.jurisdiction_description,
'valid_until': self.valid_until,
'ibcRUC': self.ibcRUC,
'name': self.name,
'country_codes': self.country_codes,
)
from .nodeutils import NodeUtils
class Intermediary(StructuredNode, NodeUtils):
sourceID = StringProperty()
valid_until = StringProperty()
name = StringProperty()
country_codes = StringProperty()
countries = StringProperty()
node_id = StringProperty(index = True)
status = StringProperty()
entities = RelationshipTo('.entity.Entity', 'INTERMEDIARY_OF')
addresses = RelationshipTo('.address.Address', 'REGISTERED_ADDRESS')
officers = Relationship('.officer.Officer', None)
@property
def serialize(self):
return {
'node_properties': {
'sourceID': self.sourceID,
'valid_until': self.valid_until,
'name': self.name,
'country_codes': self.country_codes,
'countries': self.countries,
'node_id': self.node_id,
'status': self.status,
},
}