@@ -1629,22 +1629,11 @@ def _normalize_dir(self, value):
1629
1629
value = os .path .abspath (value )
1630
1630
return value
1631
1631
1632
- # Because the validation of preferred_dir depends on root_dir and validation
1633
- # occurs when the trait is loaded, there are times when we should defer the
1634
- # validation of preferred_dir (e.g., when preferred_dir is defined via CLI
1635
- # and root_dir is defined via a config file).
1636
- _defer_preferred_dir_validation = False
1637
-
1638
1632
@validate ("root_dir" )
1639
1633
def _root_dir_validate (self , proposal ):
1640
1634
value = self ._normalize_dir (proposal ["value" ])
1641
1635
if not os .path .isdir (value ):
1642
1636
raise TraitError (trans .gettext ("No such directory: '%r'" ) % value )
1643
-
1644
- if self ._defer_preferred_dir_validation :
1645
- # If we're here, then preferred_dir is configured on the CLI and
1646
- # root_dir is configured in a file
1647
- self ._preferred_dir_validation (self .preferred_dir , value )
1648
1637
return value
1649
1638
1650
1639
preferred_dir = Unicode (
@@ -1661,39 +1650,8 @@ def _preferred_dir_validate(self, proposal):
1661
1650
value = self ._normalize_dir (proposal ["value" ])
1662
1651
if not os .path .isdir (value ):
1663
1652
raise TraitError (trans .gettext ("No such preferred dir: '%r'" ) % value )
1664
-
1665
- # Before we validate against root_dir, check if this trait is defined on the CLI
1666
- # and root_dir is not. If that's the case, we'll defer it's further validation
1667
- # until root_dir is validated or the server is starting (the latter occurs when
1668
- # the default root_dir (cwd) is used).
1669
- cli_config = self .cli_config .get ("ServerApp" , {})
1670
- if "preferred_dir" in cli_config and "root_dir" not in cli_config :
1671
- self ._defer_preferred_dir_validation = True
1672
-
1673
- if not self ._defer_preferred_dir_validation : # Validate now
1674
- self ._preferred_dir_validation (value , self .root_dir )
1675
1653
return value
1676
1654
1677
- def _preferred_dir_validation (self , preferred_dir : str , root_dir : str ) -> None :
1678
- """Validate preferred dir relative to root_dir - preferred_dir must be equal or a subdir of root_dir"""
1679
- if not preferred_dir .startswith (root_dir ):
1680
- raise TraitError (
1681
- trans .gettext (
1682
- "preferred_dir must be equal or a subdir of root_dir. preferred_dir: '%r' root_dir: '%r'"
1683
- )
1684
- % (preferred_dir , root_dir )
1685
- )
1686
- self ._defer_preferred_dir_validation = False
1687
-
1688
- @observe ("root_dir" )
1689
- def _root_dir_changed (self , change ):
1690
- self ._root_dir_set = True
1691
- if not self .preferred_dir .startswith (change ["new" ]):
1692
- self .log .warning (
1693
- trans .gettext ("Value of preferred_dir updated to use value of root_dir" )
1694
- )
1695
- self .preferred_dir = change ["new" ]
1696
-
1697
1655
@observe ("server_extensions" )
1698
1656
def _update_server_extensions (self , change ):
1699
1657
self .log .warning (_i18n ("server_extensions is deprecated, use jpserver_extensions" ))
@@ -1868,6 +1826,9 @@ def init_configurables(self):
1868
1826
parent = self ,
1869
1827
log = self .log ,
1870
1828
)
1829
+ # Trigger a default/validation here explicitly while we still support the
1830
+ # deprecated trait on ServerApp (FIXME remove when deprecation finalized)
1831
+ self .contents_manager .preferred_dir
1871
1832
self .session_manager = self .session_manager_class (
1872
1833
parent = self ,
1873
1834
log = self .log ,
@@ -2432,10 +2393,6 @@ def initialize(
2432
2393
# Parse command line, load ServerApp config files,
2433
2394
# and update ServerApp config.
2434
2395
super ().initialize (argv = argv )
2435
- if self ._defer_preferred_dir_validation :
2436
- # If we're here, then preferred_dir is configured on the CLI and
2437
- # root_dir has the default value (cwd)
2438
- self ._preferred_dir_validation (self .preferred_dir , self .root_dir )
2439
2396
if self ._dispatching :
2440
2397
return
2441
2398
# Then, use extensions' config loading mechanism to
0 commit comments