Skip to content

Commit 4ef8f04

Browse files
committed
chore: Use ast-grep to update code for new version
1 parent 53e00c5 commit 4ef8f04

File tree

4 files changed

+59
-10
lines changed

4 files changed

+59
-10
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ All notable changes to this project will be documented in this file. See [standa
88
### ⚠ BREAKING CHANGES
99

1010
* Removed `blank` argument support for fields, use mongoengine `required` instead.
11+
`ast-grep` can be used to automatically rewrite old code:
12+
13+
```
14+
ast-grep scan -r sg-rules/0.6.0-rewrite-blank.yml . -i
15+
```
16+
It's not 100% safe, as it can introduce `,,` in your code, so be careful to
17+
review, clean it up and test.
1118

1219
* Switch to mongoengine style field arguments. Drop old django ([#200](https://github.com/MongoEngine/django-mongoengine/issues/200)) ([9d56f6a](https://github.com/MongoEngine/django-mongoengine/commit/9d56f6a58ccee93e2acae7af0a8d81d9aa43ae5b))
1320

django_mongoengine/mongo_auth/models.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,13 @@ def get_email_field_name(cls):
4848

4949

5050
class ContentType(document.Document):
51-
name = fields.StringField(max_length=100)
52-
app_label = fields.StringField(max_length=100)
51+
name = fields.StringField(max_length=100, required=True)
52+
app_label = fields.StringField(max_length=100, required=True)
5353
model = fields.StringField(
54-
max_length=100, verbose_name=_('python model class name'), unique_with='app_label'
54+
max_length=100,
55+
verbose_name=_('python model class name'),
56+
unique_with='app_label',
57+
required=True,
5558
)
5659
objects = ContentTypeManager()
5760

@@ -118,9 +121,9 @@ class Permission(document.Document):
118121
created for each Django model.
119122
"""
120123

121-
name = fields.StringField(max_length=50, verbose_name=_('username'))
122-
content_type = fields.ReferenceField(ContentType)
123-
codename = fields.StringField(max_length=100, verbose_name=_('codename'))
124+
name = fields.StringField(max_length=50, verbose_name=_('username'), required=True)
125+
content_type = fields.ReferenceField(ContentType, required=True)
126+
codename = fields.StringField(max_length=100, verbose_name=_('codename'), required=True)
124127
# FIXME: don't access field of the other class
125128
# unique_with=['content_type__app_label', 'content_type__model'])
126129

@@ -163,7 +166,9 @@ class Group(document.Document):
163166
"""
164167

165168
name = fields.StringField(max_length=80, unique=True, verbose_name=_('name'))
166-
permissions = fields.ListField(fields.ReferenceField(Permission, verbose_name=_('permissions')))
169+
permissions = fields.ListField(
170+
fields.ReferenceField(Permission, verbose_name=_('permissions'), required=True)
171+
)
167172

168173
class Meta:
169174
verbose_name = _('group')
@@ -223,7 +228,7 @@ class AbstractUser(BaseUser, document.Document):
223228
date_joined = fields.DateTimeField(default=timezone.now, verbose_name=_('date joined'))
224229

225230
user_permissions = fields.ListField(
226-
fields.ReferenceField(Permission),
231+
fields.ReferenceField(Permission, required=True),
227232
verbose_name=_('user permissions'),
228233
help_text=_('Permissions for the user.'),
229234
)

django_mongoengine/sessions.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,12 @@
2626

2727
class MongoSession(Document):
2828
session_key = fields.StringField(primary_key=True, max_length=40)
29-
session_data = fields.StringField() if MONGOENGINE_SESSION_DATA_ENCODE else fields.DictField()
30-
expire_date = fields.DateTimeField()
29+
session_data = (
30+
fields.StringField(required=True)
31+
if MONGOENGINE_SESSION_DATA_ENCODE
32+
else fields.DictField(required=True)
33+
)
34+
expire_date = fields.DateTimeField(required=True)
3135

3236
meta = {
3337
'collection': MONGOENGINE_SESSION_COLLECTION,

sg-rules/0.6.0-rewrite-blank.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
id: fix-blank
2+
language: Python
3+
rule:
4+
all:
5+
- kind: keyword_argument
6+
- regex: blank=True
7+
- inside:
8+
kind: assignment
9+
stopBy: end
10+
fix: required=False
11+
12+
---
13+
14+
id: add-required-by-default
15+
language: Python
16+
rule:
17+
all:
18+
- pattern: fields.$C($$$A)
19+
- regex: '[A-Z]\w+'
20+
- not:
21+
any:
22+
- regex: required=
23+
- regex: blank=
24+
- regex: primary_key=
25+
- regex: default=
26+
- regex: null=True
27+
transform:
28+
MAYBE_COMMA:
29+
replace:
30+
source: $$$A
31+
replace: '^.+'
32+
by: ', '
33+
fix: fields.$C($$$A$MAYBE_COMMArequired=True)

0 commit comments

Comments
 (0)