Ketik enum dalam skema python eve

Saya seorang amatir dalam kerangka python Eve, tetapi saya menggunakannya untuk tujuan pengembangan. Namun, saya tidak tahu cara memiliki tipe enum dalam skema. Maksud saya sintaks dalam python Eve untuk tipe data ini.

Jadi, bagaimana cara mengungkapkan ini dalam skema python eve?

"tts" : {"enum": ["show","hide"]},

Bantuan apa pun dihargai.


person Eswar    schedule 01.02.2019    source sumber


Jawaban (2)


Anda sedang mencari aturan diizinkan.

"tts" : {"type": "string", "allowed": ["show", "hide"]}
person Pedro Rodrigues    schedule 23.03.2019
comment
Saya menemukan jawabannya segera setelah saya menulis pertanyaan. Tapi kemudian saya lupa menulis jawabannya. Tapi terima kasih telah mengkonfirmasi hal yang sama. - person Eswar; 24.03.2019
comment
Ya, senang Anda melakukannya. Hanya menjaga petunjuk untuk diikuti bagi pembaca di masa depan. - person Pedro Rodrigues; 24.03.2019

Saya rasa Anda dapat menggunakan fitur tipe data khusus di Eve. Anda dapat menambahkan tipe data baru hanya dengan menambahkan metode _validate_type_<typename> ke subkelas Anda. Perhatikan cuplikan berikut dari kode sumber Eve.

def _validate_type_objectid(self, value):
""" Enables validation for `objectid` schema attribute.

:param value: field value.
"""
if isinstance(value, ObjectId):
    return True

Metode ini mengaktifkan dukungan untuk tipe MongoDB ObjectId dalam skema Anda, memungkinkan sesuatu seperti ini:

'schema': {
   'owner': {
      'type': 'objectid',
      'required': True,
   },
}
person Saad    schedule 04.03.2019
comment
sudahkah Anda mencoba dengan tipe enum yang berbeda? Jika ya, dapatkah Anda memposting contoh itu? - person Eswar; 07.03.2019
comment
Tidak, saya belum mencobanya. Saya baru saja membacanya di dokumentasi. Anda bisa bertanya pada Sir Nicola untuk itu! - person Saad; 07.03.2019