Skip to content

Commit a4bd9b0

Browse files
remove import check for django in setup
unneeded now since the agent imports and sets up Django as part of it's initial serving
1 parent 9bbc2c2 commit a4bd9b0

File tree

10 files changed

+21
-104
lines changed

10 files changed

+21
-104
lines changed

crates/djls-django/src/django.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::gis::{check_gis_setup, GISError};
22
use djls_ipc::v1::*;
33
use djls_ipc::{ProcessError, PythonProcess, TransportError};
4-
use djls_python::{ImportCheck, Python};
4+
use djls_python::Python;
55
use std::fmt;
66

77
#[derive(Debug)]
@@ -23,12 +23,6 @@ impl DjangoProject {
2323
pub fn setup(mut python: PythonProcess) -> Result<Self, ProjectError> {
2424
let py = Python::setup(&mut python)?;
2525

26-
let has_django = ImportCheck::check(&mut python, Some(vec!["django".to_string()]))?;
27-
28-
if !has_django {
29-
return Err(ProjectError::DjangoNotFound);
30-
}
31-
3226
if !check_gis_setup(&mut python)? {
3327
eprintln!("Warning: GeoDjango detected but GDAL is not available.");
3428
eprintln!("Django initialization will be skipped. Some features may be limited.");

crates/djls-python/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
mod packaging;
22
mod python;
33

4-
pub use crate::packaging::ImportCheck;
54
pub use crate::packaging::PackagingError;
65
pub use crate::python::Python;
76
pub use crate::python::PythonError;

crates/djls-python/src/packaging.rs

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use djls_ipc::v1::*;
2-
use djls_ipc::{ProcessError, PythonProcess, TransportError};
2+
use djls_ipc::{ProcessError, TransportError};
33
use serde::Deserialize;
44
use std::collections::HashMap;
55
use std::fmt;
@@ -69,40 +69,6 @@ impl fmt::Display for Packages {
6969
}
7070
}
7171

72-
#[derive(Debug, Deserialize)]
73-
pub struct ImportCheck {
74-
can_import: bool,
75-
}
76-
77-
impl ImportCheck {
78-
pub fn can_import(&self) -> bool {
79-
self.can_import
80-
}
81-
82-
pub fn check(
83-
python: &mut PythonProcess,
84-
_modules: Option<Vec<String>>,
85-
) -> Result<bool, PackagingError> {
86-
let request = messages::Request {
87-
command: Some(messages::request::Command::CheckDjangoAvailable(
88-
check::DjangoAvailableRequest {},
89-
)),
90-
};
91-
92-
let response = python
93-
.send(request)
94-
.map_err(|e| PackagingError::Transport(e))?;
95-
96-
match response.result {
97-
Some(messages::response::Result::CheckDjangoAvailable(response)) => Ok(response.passed),
98-
Some(messages::response::Result::Error(e)) => {
99-
Err(PackagingError::Process(ProcessError::Health(e.message)))
100-
}
101-
_ => Err(PackagingError::Process(ProcessError::Response)),
102-
}
103-
}
104-
}
105-
10672
#[derive(Debug, thiserror::Error)]
10773
pub enum PackagingError {
10874
#[error("IO error: {0}")]

proto/v1/check.proto

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,6 @@ message HealthResponse {
88
optional string error = 2;
99
}
1010

11-
message DjangoAvailableRequest {}
12-
message DjangoAvailableResponse {
13-
bool passed = 1;
14-
optional string error = 2;
15-
}
16-
1711
message AppInstalledRequest {
1812
string app_name = 1;
1913
}

proto/v1/messages.proto

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ import "v1/python.proto";
99
message Request {
1010
oneof command {
1111
check.HealthRequest check__health = 1;
12-
check.DjangoAvailableRequest check__django_available = 2;
13-
check.AppInstalledRequest check__app_installed = 3;
12+
check.AppInstalledRequest check__app_installed = 2;
1413
python.GetEnvironmentRequest python__get_environment = 1000;
1514
django.GetProjectInfoRequest django__get_project_info = 2000;
1615
}
@@ -19,8 +18,7 @@ message Request {
1918
message Response {
2019
oneof result {
2120
check.HealthResponse check__health = 1;
22-
check.DjangoAvailableResponse check__django_available = 2;
23-
check.AppInstalledResponse check__app_installed = 3;
21+
check.AppInstalledResponse check__app_installed = 2;
2422
python.GetEnvironmentResponse python__get_environment = 1000;
2523
django.GetProjectInfoResponse django__get_project_info = 2000;
2624
Error error = 9000;

python/djls/handlers.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,6 @@ async def check__health(_request: check_pb2.HealthRequest) -> check_pb2.HealthRe
9191
return check_pb2.HealthResponse(passed=True)
9292

9393

94-
@proto_handler(
95-
check_pb2.DjangoAvailableRequest,
96-
error=messages_pb2.Error(
97-
code=messages_pb2.Error.DJANGO_ERROR, message="Django is not installed"
98-
),
99-
)
100-
async def check__django_available(
101-
_request: check_pb2.DjangoAvailableRequest,
102-
) -> check_pb2.DjangoAvailableResponse:
103-
import django # noqa: F401
104-
105-
return check_pb2.DjangoAvailableResponse(passed=True)
106-
107-
10894
@proto_handler(
10995
check_pb2.AppInstalledRequest,
11096
error=messages_pb2.Error(

python/djls/proto/v1/check_pb2.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929

3030

31-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0ev1/check.proto\x12\rdjls.v1.check\"\x0f\n\rHealthRequest\">\n\x0eHealthResponse\x12\x0e\n\x06passed\x18\x01 \x01(\x08\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\x18\n\x16\x44jangoAvailableRequest\"G\n\x17\x44jangoAvailableResponse\x12\x0e\n\x06passed\x18\x01 \x01(\x08\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\'\n\x13\x41ppInstalledRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\"D\n\x14\x41ppInstalledResponse\x12\x0e\n\x06passed\x18\x01 \x01(\x08\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_errorb\x06proto3')
31+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0ev1/check.proto\x12\rdjls.v1.check\"\x0f\n\rHealthRequest\">\n\x0eHealthResponse\x12\x0e\n\x06passed\x18\x01 \x01(\x08\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\'\n\x13\x41ppInstalledRequest\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\"D\n\x14\x41ppInstalledResponse\x12\x0e\n\x06passed\x18\x01 \x01(\x08\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_errorb\x06proto3')
3232

3333
_globals = globals()
3434
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -39,12 +39,8 @@
3939
_globals['_HEALTHREQUEST']._serialized_end=48
4040
_globals['_HEALTHRESPONSE']._serialized_start=50
4141
_globals['_HEALTHRESPONSE']._serialized_end=112
42-
_globals['_DJANGOAVAILABLEREQUEST']._serialized_start=114
43-
_globals['_DJANGOAVAILABLEREQUEST']._serialized_end=138
44-
_globals['_DJANGOAVAILABLERESPONSE']._serialized_start=140
45-
_globals['_DJANGOAVAILABLERESPONSE']._serialized_end=211
46-
_globals['_APPINSTALLEDREQUEST']._serialized_start=213
47-
_globals['_APPINSTALLEDREQUEST']._serialized_end=252
48-
_globals['_APPINSTALLEDRESPONSE']._serialized_start=254
49-
_globals['_APPINSTALLEDRESPONSE']._serialized_end=322
42+
_globals['_APPINSTALLEDREQUEST']._serialized_start=114
43+
_globals['_APPINSTALLEDREQUEST']._serialized_end=153
44+
_globals['_APPINSTALLEDRESPONSE']._serialized_start=155
45+
_globals['_APPINSTALLEDRESPONSE']._serialized_end=223
5046
# @@protoc_insertion_point(module_scope)

python/djls/proto/v1/check_pb2.pyi

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,6 @@ class HealthResponse(_message.Message):
2020
error: str
2121
def __init__(self, passed: bool = ..., error: _Optional[str] = ...) -> None: ...
2222

23-
class DjangoAvailableRequest(_message.Message):
24-
__slots__ = ()
25-
def __init__(self) -> None: ...
26-
27-
class DjangoAvailableResponse(_message.Message):
28-
__slots__ = ("passed", "error")
29-
PASSED_FIELD_NUMBER: _ClassVar[int]
30-
ERROR_FIELD_NUMBER: _ClassVar[int]
31-
passed: bool
32-
error: str
33-
def __init__(self, passed: bool = ..., error: _Optional[str] = ...) -> None: ...
34-
3523
class AppInstalledRequest(_message.Message):
3624
__slots__ = ("app_name",)
3725
APP_NAME_FIELD_NUMBER: _ClassVar[int]

python/djls/proto/v1/messages_pb2.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,19 @@
3131
from . import python_pb2 as v1_dot_python__pb2
3232

3333

34-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11v1/messages.proto\x12\x10\x64jls.v1.messages\x1a\x0ev1/check.proto\x1a\x0fv1/django.proto\x1a\x0fv1/python.proto\"\xf0\x02\n\x07Request\x12\x35\n\rcheck__health\x18\x01 \x01(\x0b\x32\x1c.djls.v1.check.HealthRequestH\x00\x12H\n\x17\x63heck__django_available\x18\x02 \x01(\x0b\x32%.djls.v1.check.DjangoAvailableRequestH\x00\x12\x42\n\x14\x63heck__app_installed\x18\x03 \x01(\x0b\x32\".djls.v1.check.AppInstalledRequestH\x00\x12I\n\x17python__get_environment\x18\xe8\x07 \x01(\x0b\x32%.djls.v1.python.GetEnvironmentRequestH\x00\x12J\n\x18\x64jango__get_project_info\x18\xd0\x0f \x01(\x0b\x32%.djls.v1.django.GetProjectInfoRequestH\x00\x42\t\n\x07\x63ommand\"\xa0\x03\n\x08Response\x12\x36\n\rcheck__health\x18\x01 \x01(\x0b\x32\x1d.djls.v1.check.HealthResponseH\x00\x12I\n\x17\x63heck__django_available\x18\x02 \x01(\x0b\x32&.djls.v1.check.DjangoAvailableResponseH\x00\x12\x43\n\x14\x63heck__app_installed\x18\x03 \x01(\x0b\x32#.djls.v1.check.AppInstalledResponseH\x00\x12J\n\x17python__get_environment\x18\xe8\x07 \x01(\x0b\x32&.djls.v1.python.GetEnvironmentResponseH\x00\x12K\n\x18\x64jango__get_project_info\x18\xd0\x0f \x01(\x0b\x32&.djls.v1.django.GetProjectInfoResponseH\x00\x12)\n\x05\x65rror\x18\xa8\x46 \x01(\x0b\x32\x17.djls.v1.messages.ErrorH\x00\x42\x08\n\x06result\"\xa5\x01\n\x05\x45rror\x12*\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1c.djls.v1.messages.Error.Code\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x11\n\ttraceback\x18\x03 \x01(\t\"L\n\x04\x43ode\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x13\n\x0fINVALID_REQUEST\x10\x01\x12\x10\n\x0cPYTHON_ERROR\x10\x02\x12\x10\n\x0c\x44JANGO_ERROR\x10\x03\x62\x06proto3')
34+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11v1/messages.proto\x12\x10\x64jls.v1.messages\x1a\x0ev1/check.proto\x1a\x0fv1/django.proto\x1a\x0fv1/python.proto\"\xa6\x02\n\x07Request\x12\x35\n\rcheck__health\x18\x01 \x01(\x0b\x32\x1c.djls.v1.check.HealthRequestH\x00\x12\x42\n\x14\x63heck__app_installed\x18\x02 \x01(\x0b\x32\".djls.v1.check.AppInstalledRequestH\x00\x12I\n\x17python__get_environment\x18\xe8\x07 \x01(\x0b\x32%.djls.v1.python.GetEnvironmentRequestH\x00\x12J\n\x18\x64jango__get_project_info\x18\xd0\x0f \x01(\x0b\x32%.djls.v1.django.GetProjectInfoRequestH\x00\x42\t\n\x07\x63ommand\"\xd5\x02\n\x08Response\x12\x36\n\rcheck__health\x18\x01 \x01(\x0b\x32\x1d.djls.v1.check.HealthResponseH\x00\x12\x43\n\x14\x63heck__app_installed\x18\x02 \x01(\x0b\x32#.djls.v1.check.AppInstalledResponseH\x00\x12J\n\x17python__get_environment\x18\xe8\x07 \x01(\x0b\x32&.djls.v1.python.GetEnvironmentResponseH\x00\x12K\n\x18\x64jango__get_project_info\x18\xd0\x0f \x01(\x0b\x32&.djls.v1.django.GetProjectInfoResponseH\x00\x12)\n\x05\x65rror\x18\xa8\x46 \x01(\x0b\x32\x17.djls.v1.messages.ErrorH\x00\x42\x08\n\x06result\"\xa5\x01\n\x05\x45rror\x12*\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1c.djls.v1.messages.Error.Code\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x11\n\ttraceback\x18\x03 \x01(\t\"L\n\x04\x43ode\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x13\n\x0fINVALID_REQUEST\x10\x01\x12\x10\n\x0cPYTHON_ERROR\x10\x02\x12\x10\n\x0c\x44JANGO_ERROR\x10\x03\x62\x06proto3')
3535

3636
_globals = globals()
3737
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
3838
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'v1.messages_pb2', _globals)
3939
if not _descriptor._USE_C_DESCRIPTORS:
4040
DESCRIPTOR._loaded_options = None
4141
_globals['_REQUEST']._serialized_start=90
42-
_globals['_REQUEST']._serialized_end=458
43-
_globals['_RESPONSE']._serialized_start=461
44-
_globals['_RESPONSE']._serialized_end=877
45-
_globals['_ERROR']._serialized_start=880
46-
_globals['_ERROR']._serialized_end=1045
47-
_globals['_ERROR_CODE']._serialized_start=969
48-
_globals['_ERROR_CODE']._serialized_end=1045
42+
_globals['_REQUEST']._serialized_end=384
43+
_globals['_RESPONSE']._serialized_start=387
44+
_globals['_RESPONSE']._serialized_end=728
45+
_globals['_ERROR']._serialized_start=731
46+
_globals['_ERROR']._serialized_end=896
47+
_globals['_ERROR_CODE']._serialized_start=820
48+
_globals['_ERROR_CODE']._serialized_end=896
4949
# @@protoc_insertion_point(module_scope)

python/djls/proto/v1/messages_pb2.pyi

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,34 +13,30 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti
1313
DESCRIPTOR: _descriptor.FileDescriptor
1414

1515
class Request(_message.Message):
16-
__slots__ = ("check__health", "check__django_available", "check__app_installed", "python__get_environment", "django__get_project_info")
16+
__slots__ = ("check__health", "check__app_installed", "python__get_environment", "django__get_project_info")
1717
CHECK__HEALTH_FIELD_NUMBER: _ClassVar[int]
18-
CHECK__DJANGO_AVAILABLE_FIELD_NUMBER: _ClassVar[int]
1918
CHECK__APP_INSTALLED_FIELD_NUMBER: _ClassVar[int]
2019
PYTHON__GET_ENVIRONMENT_FIELD_NUMBER: _ClassVar[int]
2120
DJANGO__GET_PROJECT_INFO_FIELD_NUMBER: _ClassVar[int]
2221
check__health: _check_pb2.HealthRequest
23-
check__django_available: _check_pb2.DjangoAvailableRequest
2422
check__app_installed: _check_pb2.AppInstalledRequest
2523
python__get_environment: _python_pb2.GetEnvironmentRequest
2624
django__get_project_info: _django_pb2.GetProjectInfoRequest
27-
def __init__(self, check__health: _Optional[_Union[_check_pb2.HealthRequest, _Mapping]] = ..., check__django_available: _Optional[_Union[_check_pb2.DjangoAvailableRequest, _Mapping]] = ..., check__app_installed: _Optional[_Union[_check_pb2.AppInstalledRequest, _Mapping]] = ..., python__get_environment: _Optional[_Union[_python_pb2.GetEnvironmentRequest, _Mapping]] = ..., django__get_project_info: _Optional[_Union[_django_pb2.GetProjectInfoRequest, _Mapping]] = ...) -> None: ...
25+
def __init__(self, check__health: _Optional[_Union[_check_pb2.HealthRequest, _Mapping]] = ..., check__app_installed: _Optional[_Union[_check_pb2.AppInstalledRequest, _Mapping]] = ..., python__get_environment: _Optional[_Union[_python_pb2.GetEnvironmentRequest, _Mapping]] = ..., django__get_project_info: _Optional[_Union[_django_pb2.GetProjectInfoRequest, _Mapping]] = ...) -> None: ...
2826

2927
class Response(_message.Message):
30-
__slots__ = ("check__health", "check__django_available", "check__app_installed", "python__get_environment", "django__get_project_info", "error")
28+
__slots__ = ("check__health", "check__app_installed", "python__get_environment", "django__get_project_info", "error")
3129
CHECK__HEALTH_FIELD_NUMBER: _ClassVar[int]
32-
CHECK__DJANGO_AVAILABLE_FIELD_NUMBER: _ClassVar[int]
3330
CHECK__APP_INSTALLED_FIELD_NUMBER: _ClassVar[int]
3431
PYTHON__GET_ENVIRONMENT_FIELD_NUMBER: _ClassVar[int]
3532
DJANGO__GET_PROJECT_INFO_FIELD_NUMBER: _ClassVar[int]
3633
ERROR_FIELD_NUMBER: _ClassVar[int]
3734
check__health: _check_pb2.HealthResponse
38-
check__django_available: _check_pb2.DjangoAvailableResponse
3935
check__app_installed: _check_pb2.AppInstalledResponse
4036
python__get_environment: _python_pb2.GetEnvironmentResponse
4137
django__get_project_info: _django_pb2.GetProjectInfoResponse
4238
error: Error
43-
def __init__(self, check__health: _Optional[_Union[_check_pb2.HealthResponse, _Mapping]] = ..., check__django_available: _Optional[_Union[_check_pb2.DjangoAvailableResponse, _Mapping]] = ..., check__app_installed: _Optional[_Union[_check_pb2.AppInstalledResponse, _Mapping]] = ..., python__get_environment: _Optional[_Union[_python_pb2.GetEnvironmentResponse, _Mapping]] = ..., django__get_project_info: _Optional[_Union[_django_pb2.GetProjectInfoResponse, _Mapping]] = ..., error: _Optional[_Union[Error, _Mapping]] = ...) -> None: ...
39+
def __init__(self, check__health: _Optional[_Union[_check_pb2.HealthResponse, _Mapping]] = ..., check__app_installed: _Optional[_Union[_check_pb2.AppInstalledResponse, _Mapping]] = ..., python__get_environment: _Optional[_Union[_python_pb2.GetEnvironmentResponse, _Mapping]] = ..., django__get_project_info: _Optional[_Union[_django_pb2.GetProjectInfoResponse, _Mapping]] = ..., error: _Optional[_Union[Error, _Mapping]] = ...) -> None: ...
4440

4541
class Error(_message.Message):
4642
__slots__ = ("code", "message", "traceback")

0 commit comments

Comments
 (0)